棧
先進後出
public class MyStack {
private int[] elememts;
public MyStack() {
this.elememts = new int[0];
}
/**
* 獲取大小
*
* @return
*/
public int size() {
return elememts.length;
}
/**
* 入棧
*
* @param element 入棧元素
*/
public void push(int element) {
int[] newArr = new int[elememts.length + 1];
for (int i = 0; i < elememts.length; i++) {
newArr[i] = elememts[i];
}
newArr[elememts.length] = element;
elememts = newArr;
}
/**
* 出棧
*
* @return
*/
public int pop() {
if (elememts.length == 0) {
throw new RuntimeException("空棧");
}
// 棧頂元素
int element = elememts[elememts.length - 1];
int[] newArr = new int[elememts.length - 1];
for (int i = 0; i < newArr.length; i++) {
newArr[i] = elememts[i];
}
elememts = newArr;
return element;
}
/**
* 獲取棧頂元素
*
* @return
*/
public int peek() {
return elememts[elememts.length - 1];
}
/**
* 查看棧是否爲空
*
* @return
*/
public boolean isEmpty() {
return elememts.length == 0;
}
/**
* 查看所有元素
*
* @return
*/
public String show() {
return Arrays.toString(elememts);
}
}
隊列
先進先出
public class MyQueue {
private int[] elememts;
public MyQueue() {
this.elememts = new int[0];
}
public int size() {
return elememts.length;
}
public void add(int elememt) {
int[] newArr = new int[elememts.length + 1];
for (int i = 0; i < elememts.length; i++) {
newArr[i] = elememts[i];
}
newArr[elememts.length] = elememt;
elememts = newArr;
}
public int del() {
int element = elememts[0];
int[] newArr = new int[elememts.length - 1];
for (int i = 0; i < newArr.length; i++) {
newArr[i] = elememts[i + 1];
}
elememts = newArr;
return element;
}
}
https://gitee.com/longhaicheng/Data-Structures-and-Algorithms