利用数组实现栈的出栈,入栈操作

利用数组实现栈的出栈,入栈操作

/**
 * 栈是限定尽在表尾进行插入和删除操作的线性表
 * 用数组来模拟栈
 * 1.定义一个top来表示栈顶,初始化为-1;
 * 2.入栈的操作,当有数据加入到栈时,top++; stack[top] = data;
 * 3.出栈的操作, int value = stack[top]; top--, return value
 * 
 */

/定义一个表示栈
class ArrayStack{
 private int maxSize; //栈的大小
 private int [] stack ; //数据放在数组中
 private int top = -1; //top表示栈顶,初始化为-1
 
 public ArrayStack(int maxSize) {
  this.maxSize = maxSize;
  stack = new int[this.maxSize];
 }
 
 //栈满
 public boolean isFull(){
  return top== maxSize -1;
 }
 
 public boolean isEmpty(){
  return top == -1;
 }
 
 //入栈 - push
 public void push(int value){
  //判断栈满
  if(isFull()){
   System.out.println("栈满");
   return;
  }
  top++;
  stack[top] =value;
 }
 
 //出栈 - pop   返回栈顶的数据
  public int pop(){
   if(isEmpty()){
    throw new RuntimeException("栈空,");
   }
   int value = stack[top];
   top--;
   return value;
  }
 //显示栈的情况
  public void list(){
   if(isEmpty()){
    System.out.println("栈空,没有数据");
    return;
   }
   for(int i = top; i>=0 ; i--){
    System.out.printf("stack[%d] = %d \n", i , stack[i]);
   }
  }
 
 
}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值