资源简介
用java写的简单栈的实现,欢迎大家使用
代码片段和文件信息
package lang;
import java.io.Serializable;
import java.util.Arrays;
/**
* @ClassName: ArrayStack
* @Description: 顺序栈
* @date 2014年1月20日 上午8:47:19
* @param
*/
public class ArrayStack implements Serializable {
/**
* @Fields serialVersionUID : TODO
*/
private static final long serialVersionUID = 74027006708386243L;
private object[] elementData;//定义一个数组用于保存顺序栈的元素
private int size = 0;//保存顺序栈中元素的当前个数
private int capacity;//保存数组的长度
public ArrayStack() {
elementData = new object[10];//默认长度为10的栈
}
public ArrayStack(int initSize) {
elementData = new object[initSize];//默认长度为10的栈
}
public ArrayStack(T element) {
this();
elementData[0] = element;
size++;
}
public ArrayStack(T element int initSize) {
this.capacity = initSize;
elementData = new object[capacity];
elementData[0] = element;
size++;
}
/**
* @title: size
* @Description: 栈长度
* @return
*/
public int size() {
return size;
}
/**
* @title: push
* @Description: 入栈
* @param element
*/
public void push(T element) {
ensureCapacity(size + 1);
elementData[size++] = element;
}
private void ensureCapacity(int minCapacity) {
//如果数组的原有长度小于目前所需的长度
int oldCapacity = elementData.length;
if (minCapacity > oldCapacity) {
int newCapacity = (oldCapacity * 3) / 2 + 1;
if (newCapacity < minCapacity)
newCapacity = minCapacity;
// minCapacity is usually close to size so this is a win:
elementData = Arrays.copyOf(elementData newCapacity);
}
}
/**
* @title: pop
* @Description: 出栈
* @return
*/
public T pop() {
if (!isEmpty()) {
T oldValue = (T) elementData[size - 1];
//释放栈顶元素
elementData[--size] = null;
return oldValue;
} else {
return null;
}
}
/**
* @title: peek
* @Description: 返回栈顶元素,但不删除栈顶元素
* @return
*/
public T peek() {
if (!isEmpty()) {
return (T) elementData[size - 1];
} else {
throw new IndexOutOfBoundsException(“空栈异常“);
}
}
/**
* @title: empty
* @Description: 判断顺序栈是否为空栈
* @return
*/
public boolean isEmpty() {
return size == 0;
}
/**
* @title: clear
* @Description: 清空顺序栈
*/
public void clear() {
//将底层数组所有元素赋为null
Arrays.fill(elementData null);
size = 0;
}
public String toString() {
if (size == 0) {
return “[]“;
} else {
StringBuilder sb = new StringBuilder(“[“);
for (int i = size - 1; i > -1; i--) {
sb.append(elementData[i].toString() + “ “);
}
int len = sb.length();
return sb.delete(len - 2 len).append(“]“).toString();
}
}
public static void main(String[] args)
{
ArrayStack stack =
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 493 2017-07-04 14:49 Stack\.classpath
文件 381 2017-07-04 13:52 Stack\.project
文件 598 2017-07-04 10:50 Stack\.settings\org.eclipse.jdt.core.prefs
文件 3889 2017-07-04 15:57 Stack\bin\lang\ArrayStack.class
文件 1975 2017-07-04 15:57 Stack\bin\lang\ArrayStack2.class
文件 1132 2017-07-04 15:57 Stack\bin\lang\li
文件 3132 2017-07-04 15:57 Stack\bin\lang\li
文件 1460 2017-07-04 15:57 Stack\bin\stack\apply\Conversion.class
文件 1770 2017-07-04 15:57 Stack\bin\stack\apply\LineEdit.class
文件 45024 2017-07-04 14:49 Stack\lib\hamcrest-core-1.3.jar
文件 53070 2017-07-04 14:49 Stack\lib\hamcrest-library-1.3.jar
文件 314932 2017-07-04 14:42 Stack\lib\junit-4.12.jar
文件 3872 2017-07-04 14:03 Stack\src\lang\ArrayStack.java
文件 1478 2017-07-04 14:05 Stack\src\lang\ArrayStack2.java
文件 2919 2017-07-04 14:29 Stack\src\lang\li
文件 1064 2017-07-04 14:46 Stack\src\stack\apply\Conversion.java
文件 1088 2017-07-04 14:55 Stack\src\stack\apply\LineEdit.java
目录 0 2017-07-04 15:57 Stack\bin\stack\apply
目录 0 2017-07-04 14:54 Stack\src\stack\apply
目录 0 2017-07-04 15:57 Stack\bin\lang
目录 0 2017-07-04 15:57 Stack\bin\stack
目录 0 2017-07-04 14:11 Stack\src\lang
目录 0 2017-07-04 14:39 Stack\src\stack
目录 0 2017-07-04 10:50 Stack\.settings
目录 0 2017-07-04 15:57 Stack\bin
目录 0 2017-07-04 14:49 Stack\lib
目录 0 2017-07-04 14:39 Stack\src
目录 0 2017-07-04 14:41 Stack
----------- --------- ---------- ----- ----
438277 28
............此处省略1个文件信息
- 上一篇:java管理系统飞机订票源代码
- 下一篇:java实现的语法分析程序
相关资源
- java实现的语法分析程序
- java管理系统飞机订票源代码
- 计算机网络大作业_CSMA-CD协议退避算法
- (购买的_慕课网)java设计模式精讲
- java实现自动阅卷系统
- java俄罗斯方块源代码169448
- javaweb音乐网站
- jsp30个项目,适合初学者
- 基于内容的图像检索Java实现相当易懂
- java web入门经典书中光盘中的源码
- Java 网上招聘系统的设计与实现源码
- JAVA加密与解密的艺术第2版(良心保证
- 基于ssm的问卷调查系统
- 数据库课设学生宿舍管理系统源码j
- java swing mysql实现的酒店管理系统项目
- jdk8的完整压缩包,不是exe执行文件,
- 高拍仪SDKC#JAVAHTMLWINFORM等多语言
- java程序设计教程PDF雍俊海+教程+源码
- 二级java无忧考试软件
- Android GDAL 2.1.4.zip
- Java编程思想(第4版)清晰PDF中文完整
- 图解数据结构-使用Java高清版本
- java+mysql新手数据库项目推荐,DNF装备
- ssm+mysql实现的Java web酒店管理项目源码
- Java做的淘宝客导购站,带手机端wap十
- Openjdk9源码
- apache-jmeter-5.1.1(Requires Java 8+).zip
- JavaSE1.8jdk中文文档.chm
- JAVA开发实战经典.pdf
- 基于hadoop的web云盘系统
评论
共有 条评论