zoukankan      html  css  js  c++  java
  • 基本数据结构——栈

      栈的特征是后进先出(last-in, first-out, LIFO)。栈上的插入操作称为压入(PUSH),删除操作称为弹出(POP)。

    下面使用一个数组S[n]来实现一个最多容纳n个元素的栈。定义一个属性指向最新插入的元素。栈的操作代码如下:

    public class Stack {
        
        private Object[] objs;
        private int pointTop = -1;    //指向最新插入的元素
        
        public Stack() {
        }
        
        public Stack(int n) {    //初始化数组的大小
            objs = new Object[n];
        }
        
        public boolean isEmpty() {
            if(pointTop == -1){
                return true;
            }
            return false;
        }
        
        public boolean isFull() {
            if(pointTop == objs.length-1){
                return true;
            }
            return false;
        }
        
        public boolean push(Object obj) {
            if(!isFull()){
                pointTop += 1;
                objs[pointTop] = obj;
                return true;
            }
            return false;
            
        }
        
        public Object pop() {
            if(isEmpty()){
                return -1;
            }else{
                pointTop = pointTop-1;
                return objs[pointTop+1];
            }
            
        }
        
        public static void main(String[] args) {
            Stack stack = new Stack(10);
            for(int i=0;i<5;i++){
                if(stack.push(i)){
                    System.out.println(i);
                }
            }
            System.out.println();
            for(int i=0;i<5;i++){
                System.out.println(stack.pop());
            }
        }
        
    }

    运行结果:

    0
    1
    2
    3
    4

    4
    3
    2
    1
    0

  • 相关阅读:
    js快速排序
    蛇形数组
    大臣的旅费
    1724ROADS
    2738:实数加法
    完整版高精度计算(整理后的)
    2737:大整数除法
    2980:大整数乘法
    2736大整数减法,3180 整数减法
    2981:大整数加法
  • 原文地址:https://www.cnblogs.com/ming-zi/p/6373040.html
Copyright © 2011-2022 走看看