package Stack;
/*
* 栈的数组实现
*
*/
public class Stack_array {
private int[] data;//存数据的数组
private int size;//栈的最大长度
private int top;//栈顶的位置
public Stack_array(int size) {
this.size = size;
data = new int[size];
top = -1;
}
//判断栈是否为空
public boolean isEmpty(){
return top == -1;
}
//判断栈是否已满
public boolean isfull() {
return data.length -1 == top;
}
//向栈顶插入一个元素
public void push(int index) {
if(isfull()){
throw new RuntimeException("栈已满");
}
data[++top] = index;
}
//从栈顶取出一个元素
public int pop() {
if(isEmpty()){
throw new RuntimeException("栈已空");
}
return data[top--];
}
//获取栈顶的元素,但不弹栈
public int peek() {
return this.top;
}
public static void main(String[] args) {
Stack_array stack = new Stack_array(10);
System.out.println("isEmpty: "+stack.isEmpty());
for(int i = 0;i<10;i++){
stack.push(i);
}
System.out.println("isFull: "+stack.isfull());
for(int i = 9;i>0;i--){
System.out.println(stack.data[i]);
}
System.out.println("Now the top_num is:" + stack.peek());
while(!stack.isEmpty()){
System.out.println(stack.pop());
}
//stack.pop();
System.out.println("isEmpty: "+stack.isEmpty());
}
}
栈的简单实现(数组)
最新推荐文章于 2021-05-04 02:34:39 发布