From d895636a3d7d23104175779450147d3228876dd8 Mon Sep 17 00:00:00 2001 From: PeiJiaNi Date: Sat, 16 Mar 2019 17:00:18 +0800 Subject: [PATCH] =?UTF-8?q?=E9=A1=BA=E5=BA=8F=E6=A0=88=E5=AE=9E=E7=8E=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- StackBaseArray.java | 64 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100644 StackBaseArray.java diff --git a/StackBaseArray.java b/StackBaseArray.java new file mode 100644 index 0000000..dc1ee18 --- /dev/null +++ b/StackBaseArray.java @@ -0,0 +1,64 @@ +package Stack; + +/** + * 顺序栈(基于数组实现) + * Author: PeiJiaNi + */ +public class StackBaseArray { + private int[] items; // 数组 + private int count; // 栈中元素个数 + private int length; // 栈空间大小 + + public StackBaseArray(int capactiy) { + this.items = new int[capactiy]; + this.count = 0; + this.length = capactiy; + } + + /** + * 入栈操作 时间复杂度O(1) + * @param item 要入栈的元素 + * @return 入栈成功则返回true,否则返回false + */ + public boolean push(int item) { + if(count == length) { + System.out.println("当前栈已满,无法进行入栈操作"); + return false; + } + items[count] = item; + ++count; + return true; + } + + /** + * 出栈操作 时间复杂度O(1) + * @return 如果栈内不为空,则返回栈顶元素,否则返回-1 + */ + public int pop(){ + if(count == 0) { + System.out.println("当前栈已空,无法进行出栈操作"); + return -1; + } + + // 返回下标为 count-1 的数组元素,并且栈中元素个数count-1 + return items[--count]; + } + + public static void main(String[] args){ + StackBaseArray stack = new StackBaseArray(6); + stack.push(1); + stack.push(2); + stack.push(3); + stack.push(4); + stack.push(5); + System.out.println(stack.pop()); + System.out.println(stack.pop()); + System.out.println(stack.pop()); + System.out.println(stack.pop()); + System.out.println(stack.pop()); + + } + + +} +