资讯专栏INFORMATION COLUMN

JavaScript的数据结构与算法(一) —— 栈

quietin / 503人阅读

摘要:栈是一种遵从后进先出原则的有序集合。新添加的或待删除的元素都保存在栈的末尾。称作栈顶,另一端就叫栈底。在栈里,新元素都靠近栈顶,旧元素都靠近栈底。提供可操作的方法入栈出栈,但是会移掉栈中的数据。

是一种遵从后进先出(LIFO)原则的有序集合。新添加的或待删除的元素都保存在栈的末尾。称作栈顶,另一端就叫栈底。在栈里,新元素都靠近栈顶,旧元素都靠近栈底。

javascript提供可操作的方法, 入栈 *push*, 出栈 pop,但是pop会移掉栈中的数据。

让我们来用js数组的方法,来简单实现一个栈类:

peek(): 查看栈顶元素

clear(): 实现一个清理方法

size(): 栈内元素总量查找

isEmpty(): 判断栈是否为空

代码如下:

function Stack() {
  var items = [];
  this.push = function(element){//添加一个(或几个)新元素到栈顶
    items.push(element);
  };
  this.pop = function(){//移除栈顶的元素,同时返回被移除元素
    return items.pop();
  };
  this.peek = function(){//返回栈顶的元素,但并不对栈做任何修改
    return items[items.length-1];
  };
  this.isEmpty = function(){//如果栈内没有任何元素就返回true,否则返回false
    return items.length == 0;
  };
  this.size = function(){//返回栈里的元素个数
    return items.length;
  };
  this.clear = function(){//移除栈里的所有元素
    items = [];
  };
  this.print = function(){//打印
    console.log(items.toString());
  };
  this.toString = function(){
    return items.toString();
  };
}

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/89256.html

相关文章

  • 学习JavaScript数据结构算法):队列

    摘要:之数组操作接下来就是数据结构的第一部分,栈。以字符串显示栈中所有内容方法的实现说明需要往栈中添加新元素,元素位置在队列的末尾。的前端乐园原文链接寒假前端学习学习数据结构与算法,栈与队列 本系列的第一篇文章: 学习JavaScript数据结构与算法(一),栈与队列第二篇文章:学习JavaScript数据结构与算法(二):链表第三篇文章:学习JavaScript数据结构与算法(三):集合第...

    Flink_China 评论0 收藏0
  • CSS技巧 - 收藏集 - 掘金

    摘要:笔者作为一位,将工作以来用到的各种优秀资料神器及框架整理在此,毕竟好记性不如烂键盘,此前端知识点大百科全书前端掘金,,不定期更新技巧前端掘金技巧,偶尔更新。计算数组的极值技巧使你的更加专业前端掘金一个帮你提升技巧的收藏集。 CSS 样式画各种图形 - 前端 - 掘金下面是一些我在 CSS 中经常用到的图案,还有一些是在css-tricks看到的。记录一下,以后会用到。会持续更新… 一、...

    Jonathan Shieber 评论0 收藏0
  • CSS技巧 - 收藏集 - 掘金

    摘要:笔者作为一位,将工作以来用到的各种优秀资料神器及框架整理在此,毕竟好记性不如烂键盘,此前端知识点大百科全书前端掘金,,不定期更新技巧前端掘金技巧,偶尔更新。计算数组的极值技巧使你的更加专业前端掘金一个帮你提升技巧的收藏集。 CSS 样式画各种图形 - 前端 - 掘金下面是一些我在 CSS 中经常用到的图案,还有一些是在css-tricks看到的。记录一下,以后会用到。会持续更新… 一、...

    SHERlocked93 评论0 收藏0
  • JavaScript 数据结构算法之美 - 内存堆内存 、浅拷贝深拷贝

    摘要:栈内存与堆内存浅拷贝与深拷贝,可以说是前端程序员的内功,要知其然,知其所以然。栈内存与堆内存中的变量分为基本类型和引用类型。 showImg(https://segmentfault.com/img/bVbuvnj?w=900&h=250); 前言 想写好前端,先练好内功。 栈内存与堆内存 、浅拷贝与深拷贝,可以说是前端程序员的内功,要知其然,知其所以然。 笔者写的 JavaScrip...

    dailybird 评论0 收藏0
  • Javascript数据结构算法(三)

    摘要:保护数据结构内部元素下划线命名约定这只是一种约定,只能依赖于开发人员具备的常识用的限定作用于实现类实现了假的私有属性,虽然基本类型不可变,但由于新增的方法仍然能取到所有属性,而且是数组的形式,但我们操作的是栈,不应该出现这种行为。 栈是一种遵循后进先出(ILFO)原则的有序集合,新添加或待删除的元素都保存在栈的同一段,称为栈顶,另一端就叫栈底。现实中很多例子采用了这种数据结构,比如一摞...

    kohoh_ 评论0 收藏0

发表评论

0条评论

quietin

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<