栈的特性:后进先出
顺序栈类的定义
public class Stack{
//定义栈的长度
private int length;
//定义存放栈元素的数组
private int data[length];
//定义栈顶元素在数组中的下标
private int top;
}
顺序栈的入栈操作
public void Push(int x){
if(top == length - 1){
System.out.println("栈满,上溢!");
}
data[++ top] = x;
}
顺序栈的出栈操作
public void Pop(){
int x;
if(top == - 1){
System.out.println("栈空,下溢!");
}
x = data[top --];
return x;
}
链栈
链栈的存储结构:通常用单链表表示,其节点结构与单链表的节点结构相同。
链栈的类定义
public class ListStack(){
//定义指向栈顶的指针
Node top;
}
链栈的入栈操作
public void Push(int x){
Node node = null;
node = new Node;
node.data = x;
node.next = top;
top = node;
}
链栈的出栈操作
public void Pop(){
Node node = null;
int x;
if(top == null){
System.out.pritln("栈满,下溢!");
}
x = top.data;
node = top;
top = top.next;
return x;
}