package com.structure.stack;
/**
* 使用数组模拟stack实现
*/
public class StackDemo {
public static void main(String[] args) {
StackNode node = new StackNode(4);
node.push(1);
node.push(2);
node.push(3);
node.push(4);
node.remove();
node.showStack();
}
}
class StackNode{
private int maxSize;//最大容量
private int top;//定义一个栈顶的指针
private int[] stackArr;//定义一个数组模拟栈
public StackNode(int maxSize){
this.maxSize = maxSize;
stackArr = new int[maxSize];
top = -1;
}
//判断栈是否已满
public boolean isFull(){
return top==maxSize-1;
}
//判断栈是否为空
public boolean isEmpty(){
return top==-1;
}
//向栈中添加数据
public void push(int data){
if(isFull()){
System.out.println("栈已满");
return;
}
top++;
stackArr[top] = data;
}
//从栈中取出数据
public int remove(){
if(isEmpty()){
System.out.println("栈为空,不能取出数据");
return 0;
}
int value = stackArr[top];
top--;
return top;
}
//显示栈
public void showStack(){
if(isEmpty()){
System.out.println("栈为空,不能取出数据");
return;
}
for (int i=top;i>=0;i--){
System.out.printf("stack[%d]=%d\n",i,stackArr[i]);
}
}
}
使用数组模拟栈的简单代码实现
最新推荐文章于 2021-09-20 10:07:22 发布