public interface IMyStack {
//将item压入栈中
void push(int item);
//返回栈顶元素,并且出栈
int pop();
//返回栈顶元素,但不出栈
int peek();
//判断这个栈是否为空栈
boolean empty();
//返回元素个数
int size();
}
public class MyStackImpl implements IMyStack {
private int top;//永远指向可以存放数据元素的下标
private int[] elem;//数组
private int usedSize;//数据元素的个数
public MyStackImpl(int size){
this.top = 0;
this.elem = new int[size];
this.usedSize = 0;
}
public boolean isFull(){
return this.top == this.elem.length;
}
@Override
public void push(int item) {
if(isFull()){
System.out.println("栈满!");
return;
}
else{
this.elem[this.top++] = item;
this.usedSize++;
}
}
@Override
public int pop() {
if(empty()){
System.out.println("栈中没有数据!");
return 0;
}
int data = this.elem[top-1];
this.top--;
this.usedSize--;
return data;
}
@Override
public int peek() {
if(empty()){
System.out.println("栈中没有数据");
return 0;
}
return this.elem[this.top-1];
}
@Override
public boolean empty() {
if(top == 0){
return top == 0;
}
return false;
}
@Override
public int size() {
return this.usedSize;
}
}
栈
最新推荐文章于 2022-04-22 23:43:58 发布