栈
- 栈:是一种特殊的线性表,遵守 后进先出LIFO(Last In First Out) 的原则。
表的尾端称为栈顶,表头端称为栈底。
示例:
入栈:1,2,3,4,5,6
…
生活中的栈的例子:
1.垒砖,砖块总是放置在已经垒好的砖块上面;
2.洗盘子,洗好的盘子总是逐个往上叠放在已经洗好的盘子上
…
- 实现
(1) 顺序表实现:
- 使用尾插操作表示 “入栈 ”;
- 使用尾删操作表示 “出栈 ”;
- 使用根据下标去元素的操作表示 “取栈顶元素 ”。
// 使用顺序表实现:
public class MyStack {
private int[] data = new int[100];
private int size = 0;
// 基本操作
// 1.入栈
public void push(int val){
if (size >= data.length){
return;
}
data[size] = val;
size++;
}
// 2.出栈,返回值为出栈的元素
public Integer pop(){
if (size == 0){
return null;
}
// 若栈顶元素就是最后一个元素
int ret = data[size - 1];
size--;
return ret;
}
// 3.取栈顶元素
public Integer peek(){
if (size == 0){
re