栈的概述
- 栈是与列表类似的数据结构.
- 是一种高效的数据结构, 因为数据只能在栈顶添加或删除, 这样的操作很快且易实现.
- 栈的使用在开发过程中很常见
- 栈的特点: 后入先出(LIFO, last-in-first-out)
栈的操作概述
由于栈具有后入先出的特点, 所以任何不在栈顶的元素都无法访问, 若想得到栈底的元素, 必须拿掉上面的元素
对栈的操作主要有三个:
- 入栈push()
- 出栈pop()–>栈顶元素从栈中移除
- 预览栈顶元素peek()–>只返回栈顶元素, 不移除
为了标记栈顶元素的位置, 同时也标记可以加入元素的位置, 使用变量top进行记录栈顶位置. 入栈时, top变大; 出栈时, top变小.
其他操作:
- clear() 清除栈内所有元素
- length属性 返回栈内元素个数(栈的长度)
- empty属性 标记栈是否为空(true为空, false非空)
栈的实现
1. 定义Stack类的构造函数
function Stack() {
this.dataStore = []; //使用数组存储栈内元素
this.top = 0;
this.push = push; //入栈
this.pop = pop; //出栈
this.peek = peek; //预览栈顶元素
this.clear = clear; //清除栈内所有元素
this.length = length;
this.empty = empty;
}
2.栈内方法的实现
func