栈 是限定仅在表头进行插入和删除操作的线性表。
用数组实现栈的基本操作:压栈、弹栈等
代码实现:
public class MyStack {
// 底层用数组实现
private long[] arr;
private int pop;
public MyStack() {
arr = new long[10];
pop = -1;
}
public MyStack(int maxsize) {
arr = new long[maxsize];
pop = -1;
}
/**
* 入栈
* @param data
*/
public void push(long data) {
arr[++pop] = data;
}
/**
* 弹栈
* @return
*/
public long pop() {
return arr[pop--];
}
/**
* 查看栈顶数据
* @return
*/
public long peek() {
return arr[pop];
}
/**
* 遍历数据
* @return
*/
public String list() {
String str = "[ ";
for (int i = 0; i <= pop; i++) {
str += arr[i] + ", ";
}
str = str.substring(0, str.length()-2) + " ]";
return str;
}
@Override
public String toString() {
return list();
}
}
测试类:
public class Test {
public static void main(String[] args) {
MyStack stack = new MyStack(20);
stack.push(10);
stack.push(20);
stack.push(30);
System.out.println(stack);
System.out.println(stack.peek());
stack.pop();
System.out.println(stack);
}
}