栈:是种数据结构,有的使用数组实现的,有的使用链表实现的。
特点:先进后出,栈底是不浮动的,只有栈顶浮动, 新插入的元素会成为新的栈顶, 删除元素也只能从栈顶移除
基于数据的栈的代码:
package stack;
public class StackBasedArray {
private int maxSize;
private Node[] stack;
private int top;//栈顶的位置
public StackBasedArray(int max){
this.maxSize=max;
stack=new Node[max];
top=-1;
}
/**判断栈是否已满
*/
public boolean isFull(){
if(maxSize-1==top){
return true;
}
return false;
}
/**判断是否为空
* */
public boolean isEmpty(){
if(top==-1){
return true;
}
return false;
}
/**
* 压栈
* */
public void push(Node node){
if(isFull()){
System.out.println("栈已满!");
}
stack[++top]=node;
}
/**
* 弹栈
* */
public Node pop(){
if(isEmpty()){
System.out.println("栈为空");
return null;
}
return stack[top--];
}
/**
* 返回栈顶元素*/
public Node getTop(){
if(isEmpty()){
System.out.println("栈为空");
return null;
}
return stack[top];
}
}
public class Node {
private int data;
public Node(){}
public Node(int data){
this.data=data;
}
public void setData(int data){
this.data=data;
}
public int getData(){
return this.data;
}
}