栈和队列的底层数组实现

来源:互联网 发布:时光知味岁月沉香 编辑:程序博客网 时间:2024/05/29 16:28

public class MyStack {

private int[] arr;
//栈点

private int top;


//构造方法
public MyStack(){
arr=new int[20];
top=-1;
}
public MyStack(int maxsize){
arr=new int[maxsize];
top=-1;

}

//压栈
public void prush(int value){
arr[++top]=value;

}

//弹栈
public int pop(){
return arr[top--];

}

//查看当前
public int peek(){
return arr[top];

}

//判断是否为空
public boolean isEmpty(){
return top==-1;

}

//判断是否满了
public boolean isFull(){
return top==arr.length-1;
}

}


-----------队列层原理(用自定义数组)演示如下----------

public class MyQueue {


private int[] arr;
private int Element;
//队首
private int front;
//队尾
private int end;


//构造方法
public MyQueue() {
arr=new int[20];
front=0;
Element=0;
end=-1;
}
public MyQueue(int maxsize) {
arr=new int[maxsize];
Element=0;
front=0;
end=-1;
}
//进入队列
public void prush(int value){
if(end==arr.length-1){
end=-1;
}
arr[++end]=value;
Element++;
}
//出来队列
public int pop(){

int value=arr[front++];
if(front==arr.length){
front=0;
}
Element--;
return value;
}
//查看当前
public int peek(){
return arr[front];
}
//判断是否为空
public boolean isEmpty(){

return Element==0;
}
//判断是否满了
public boolean isFull(){
return Element==arr.length;
}
}

1 0
原创粉丝点击