1.栈是什么??
栈(stack)又名堆栈,它是一种运算受限的线性表。其限制是仅允许在表的一端进行插入和删除运算。这一端被称为栈顶,相对地,把另一端称为栈底。向一个栈插入新元素又称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素又称作出栈或退栈,它是把栈顶元素删除掉,使其相邻的元素成为新的栈顶元素。(来自百度百科)
我理解的栈就是就是一个边吃边串的糖葫芦。哈哈是不是很生动形象!!
2.栈存在的意义何在?
在网上搜了也每个明确的答案。我的认识就是他可以做到在一个任务没有结束的时候可以取开始新的任务,然后再回来继续原来的任务。
3.栈的具体实现
package 栈;
public class Stack {
private int size;
private int top;
private int [] stackArray;
//构造函数
public Stack(int size) {
stackArray = new int[size];
this.size = size;
top = -1;
}
//入栈
public void push(int value) {
top++;
stackArray[top] = value;
}
//出栈
public void deltop() {
System.out.println("删除的元素值为"+stackArray[top]);
top--;
}
//读取栈顶元素
public int readtop() {
if(top >= 0) {
return stackArray[top];
}else {
return 0;
}
}
//判断是否为空
public boolean isnull() {
if(top == -1) {
return true;
}else {
return false;
}
}
public boolean isfull() {
if(top == size - 1) {
return true;
}else {
return false;
}
}
}