顺序栈实现
This commit is contained in:
parent
bbe7900e13
commit
d895636a3d
64
StackBaseArray.java
Normal file
64
StackBaseArray.java
Normal file
@ -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());
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user