js数据结构——栈Stack

栈的概述

  • 栈是与列表类似的数据结构.
  • 是一种高效的数据结构, 因为数据只能在栈顶添加或删除, 这样的操作很快且易实现.
  • 栈的使用在开发过程中很常见
  • 栈的特点: 后入先出(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
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值