博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Stack栈的基础实现
阅读量:5318 次
发布时间:2019-06-14

本文共 2103 字,大约阅读时间需要 7 分钟。

1 public class Stack { 2     private final int INIT_SIZE = 10; 3     private int size = 0; 4     private int[] array; 5  6     public Stack() { 7         array = new int[INIT_SIZE]; 8     } 9 10     public Stack(int init) {11         if (init <= 0) {12             array = new int [INIT_SIZE];13         }14         array = new int[init];15     }16 17     /**18      * 入栈19      * 20      * @param value21      *            入栈的元素22      */23     public void push(int value) {24         /* 判断是否要扩容 */25         if (size == array.length) {26             array = Arrays.copyOf(array, array.length * 2);27         }28         array[size++] = value;29     }30 31     /**32      * 取栈顶元素33      * 34      * @return 返回栈顶元素35      */36     public int top() {37         if (size == 0) {38             throw new IndexOutOfBoundsException("栈空了");39         }40         return array[size - 1];41     }42 43     /**44      * 出栈45      * 46      * @return 出栈元素47      */48     public int pop() {49         int item = top();50         size--;51         return item;52     }53 54     /**55      * 判断栈满56      * 57      * @return 布尔值58      */59     public boolean isFull() {60         return size == array.length;61     }62 63     /**64      * 判断是否栈空65      * 66      * @return67      */68     public boolean isEmpty() {69         return size == 0;70     }71 72     /**73      * 栈的大小74      * 75      * @return 栈的大小76      */77     public int size() {78         return size;79     }80 81     public static void main(String[] args) {82         Stack stack = new Stack();83         stack.push(0);84         System.out.println("出栈前的长度为:" + stack.size);85         stack.push(1);86         stack.push(2);87         System.out.println("出栈前的栈顶元素为:" + stack.top());88         System.out.println("出栈元素为:" + stack.pop());89         System.out.println("出栈后的长度为:" + stack.size);90         System.out.println("出栈后的栈顶元素为:" + stack.top());91     }92 }

运行结果: 

  出栈前的长度为:1

  出栈前的栈顶元素为:2
  出栈元素为:2
  出栈后的长度为:2
  出栈后的栈顶元素为:1

 

分析:该代码主要包括出栈、入栈、取栈顶元素、栈空、栈满以及栈的大小。其实栈的实现整体上不难,但要判断是否要扩容以及栈空等细节情况

转载于:https://www.cnblogs.com/mjyung/p/6706347.html

你可能感兴趣的文章