目录
栈的认识
栈:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈顶,另一端称为栈底。
压栈:栈的插入操作叫做进栈/压栈/入栈,入数据在栈顶。
出栈:栈的删除操作叫做出栈,出数据在栈顶
栈是一种先进后出的数据结构
栈的功能
由于栈是一种特殊的数据结构,一次出栈的元素只能出最后入栈的元素,所以不能通过下标进行随机查询,也不能通过下标进行随机取元素操作,以下是栈涉及到的操作
public boolean empty() // 返回栈是否为空。
public int peek() // 返回栈顶部的对象,而不从栈中删除它。
public int pop() // 删除栈顶部的对象,并将该对象作为此函数的值返回。
public void push() // 入栈操作
接下来,就使用 Java 实现以上的方法,在实现功能前,先创建一个数组用来储存数据,再创建一个变量 top 记录当前栈顶的元素.
class MyStack{
private int[] elem;//数组存放元素
private int top;// 栈顶指针
public MyStack() {
this.elem = new int[10];// 初始容量为10
this.top = 0;
}
}
实现
入栈
从图中,可以知道,每次入栈操作,都在 top 指针处插入数据,且 top 指针自增一次,所以可以写成在数组的top位置进行插入数据.
public void push(int item) {
// 可以分为两步操作
/*
this.elem[top] = item;
this.top++;
*/
// 也可以一步到位
this.elem[top++] = item;
}