------------栈底层原理(用自定义数组)演示如下----------
package cn;
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;
}
}
-----------队列层原理(用自定义数组)演示如下----------
package cn;
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;
}
}
注:以上为本人总结,如有错误之处,望不吝指出,非常感谢!
如果对您起到了一点点帮助,请给予我一点鼓励,在下方点个小小的赞,谢谢