重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
本文实例讲述了JS中的算法与数据结构之栈(Stack)。分享给大家供大家参考,具体如下:
创新互联建站是专业的寻乌网站建设公司,寻乌接单;提供成都网站制作、网站建设,网页设计,网站设计,建网站,PHP网站建设等专业做网站服务;采用PHP框架,可快速的进行寻乌网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,专业的做网站团队,希望更多企业前来合作!栈(Stack)
上一篇我们说到了列表,它是一种最自然的数据组织方式,如果对数据的存储顺序要求不重要,那么列表就是一种非常适合的数据结构,但对于计算机其他的一些应用(比如后缀表达式),那么列表就显得有些无能为力, 所以,我们需要一种和列表功能相似但更复杂的数据结构。
栈,又叫堆栈,是和列表类似的一种数据结构,但是却更高效,因为栈内的元素只能通过列表的一端访问,称为栈顶,数据只能在栈顶添加或删除,遵循 先入后出(LIFO,last-in-first-out) 的原则,普遍运用于计算机的方方面面。
对栈的操作主要有两种,一是将一个元素压入栈,push方法,另一个就是将栈顶元素出栈,pop方法。
除此之外,栈还有其他的一些属性和方法:查看当前栈顶的元素值,我们使用 peek 方法,它仅仅返回栈顶元素值,并不删除它;clear 方法用于清空当前栈内的所有元素;top属性记录当前栈顶位置;length方法返回当前栈内元素总数等;接着我们定义栈的数据类型,并利用JS中的数组去实现它。
栈数据类型定义
栈的实现
//定义栈 function Stack () { this.dataStore = []; //初始化为空 this.top = 0; //记录栈顶位置 this.pop = pop; //出栈 this.push = push; //入栈 this.peek = peek; //查看栈顶元素 this.length = length; //查看栈内元素总数 this.clear = clear; //清空栈 }