1、队列
特点:先进先出
基于数组的实现:
public class MyQueue {
private int[] elements;
public MyQueue() {
elements = new int[0];
}
//入队列
public void add(int data) {
int[] newElements = new int[elements.length + 1];
for (int i = 0; i < elements.length; i++) {
newElements[i] = elements[i];
}
newElements[elements.length] = data;
elements = newElements;
}
//出队列
public int poll() {
if (elements.length == 0) {
throw new RuntimeException("queue is empty.");
}
//取最开始的元素
int element = elements[0];
int[] newElements = new int[elements.length - 1];
for (int i = 0; i < newElements.length; i++) {
newElements[i] = elements[i + 1];
}
elements = newElements;
return element;
}
public int[] getElements() {
return elements;
}
public boolean isEmpty() {
return elements.length == 0;
}
}
2、栈
特点:先进后出
基于数组的实现:
public class MyStact {
//基于数组来实现 栈 结构
private int[] elements;
public MyStact() {
elements = new int[0];
}
//加入数据到栈中
public void push(int data) {
int[] newElements = new int[elements.length + 1];
//先复制原有数据
for (int i = 0; i < elements.length; i++) {
newElements[i] = elements[i];
}
//把新数据加入到最后位置
newElements[ne