package com.free;
public class Stack<E> {
private Object[] data = null;
private int maxSize = 0; // 栈的容量
private int top = -1; // 栈顶的指针
// 构造函数:根据指定的size初始化栈
Stack() {
this(10);
}
Stack(int initialSize) {
if (initialSize >= 0) {
this.maxSize = initialSize;
this.data = new Object[initialSize];
this.top = -1;
} else {
throw new RuntimeException("初始化大小不能为0:" + initialSize);
}
}
/**
* 向栈中压入一个数据,先入栈的数据在最下面
*
*
* @param e
* @return
*/
public boolean push(E e) {
if (top == maxSize - 1) {
throw new RuntimeException("栈已满,无法将元素入栈");
} else {
data[++top] = e;
return true;
}
}
/**
* 弹出栈顶数据,既移除栈顶数据
* @return
*/
public E pop() {
if (top == -1) {
throw new RuntimeException("栈为空!");
} else {
return (E) data[top--];
}
}
/**
* 返回当前的栈顶数据
* @return
*/
public E peek() {
if (top == -1) {
throw new RuntimeException("栈为空!");
}
return (E) data[top];
}
}
栈代码简单实现 [JAVA]
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- Java代码实现顺序栈和链式栈 栈(stack)又名堆栈,它是一种运算受限的线性表。其限制是仅允许在表的一端进行插...
- 栈的定义: 栈是一种特殊的线性表。其特殊性在于限定插入和删除数据元素的操作只能在线性表的一端进行 从影响数据结构的...
- 链表定义 链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链...
- 复杂的故事简单说,复杂的问题简单做,您好,这里是简露一手,欢迎浏览。 简述 经常:提交代码到SVN比对,发现代码被...