Stack 栈

package P_12_11;





/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: 
 * Date: 2021-12-11
 * Time: 17:29
 */

class stack {

    public static void main1(String[] args) {
        Stack<Integer> stack = new Stack<>();
        stack.push(1) ;
        stack.push(3) ;
        stack.push(4) ;
        int ret = stack.pop(); // 弹出栈顶的元素;
        System.out.println(ret);
        int ret2 = stack.peek();// 获取栈顶的元素,但是不删除;
        System.out.println(ret2);

    }
}


public class Stack {
       int [] elem ;
       public int usedSize ;

       public Stack (){
           this.elem = new int[5];
    }
    public void push (int val ){
           if(isFull()){
               System.out.println("栈满了");
               return;
           }
           this.elem[this.usedSize] = val;
           this.usedSize++;
    }
    //
    public boolean isFull(){
           return this.usedSize  == this.elem.length;
    }
    //判断是否为空
    public boolean empty(){
           return this.usedSize == 0 ;

        }


    // 弹出并且删除栈顶元素;
    public int pop(){
           if(empty()){
               throw new RuntimeException("栈为空")  ;
           }
           int val = this.elem[usedSize-1];
          this.elem[usedSize-1] = Integer.parseInt(null);
          this.usedSize = usedSize--;
           return val;
    }
    // 只是弹出但是不删除
    public int peek(){
        if(empty()){
            throw new RuntimeException("栈为空")  ;
        }
           int val = elem[this.usedSize-1];
           return val;
    }

}
上一篇:【栈和队列】【打卡第152道】: 《剑指Offer》3刷:JZ31 栈的压入、弹出序列


下一篇:每日一题-合法括号序列判断