:后进先出(LIFO)的有序集合
队列:先进先出(FIFO)的有序集合
------------------------------------------------------------------------------------------------------
(1)栈方法声明:
首先,采用数组来保存栈里的元素。
序号
方法
说明
1
push ( element(s) )
添加一个(或几个)新元素到栈顶
2
pop ( )
移除栈顶的元素,同时返回被移除的元素
3
peek ( )
返回栈顶的元素,不对栈做任何修改
4
isEmpty ( )
如果栈里没有任何元素就返回 true,否则返回 false
5
clear ( )
移除栈里的所有元素
6
size ( )
返回栈里的元素个数。和数组的 length 属性很类似

对于集合,最好用 size 代替 length

栈的实现:
 function Stack() {
var items = []; this.push = function(element) {
items.push(elemnt);
} this.pop = function() {
return items.pop();
} this.peek = function() {
return items[items.length - 1];
} this.isEmpty = function() {
return items.length == 0;
} this.size = function() {
return items.length;
} this.clear = function() {
items = [];
} this.print = function() {
console.log(items.toString());
}
}

Stack.js

(2)队列方法声明:

首先,采用数组来保存栈里的元素。
序号
方法
说明
1
enqueue ( element(s) )
向队列尾部添加一个(或多个)新的项
2
dequeue ( )
移除队列的第一(即排在队列最前面的)项,并返回被移除的元素
3
front ( )
返回队列中的第一个元素——最先被添加,不对队列做任何修改
4
isEmpty ( )
如果队列里没有任何元素就返回 true,否则返回 false
5 size ( )
返回队列里的元素个数。和数组的 length 属性很类似
队列的实现:
 function Queue() {
var items = []; this.enqueue = function(element) {
items.push(element);
}; this.dequeue = function() {
return items.shift();
}; this.front = function() {
return items[0];
}; this.isEmpty = function() {
return items.length == 0;
}; this.size = function() {
return itemt.length;
}; this.print = function() {
console.log(items.toString());
};
}

Queue.js

 
参考书籍:《学习JavaScript数据结构与算法》
 

JavaScript数据结构——栈和队列的更多相关文章

  1. javascript数据结构与算法---队列

    javascript数据结构与算法---队列 队列是一种列表,不同的是队列只能在队尾插入元素,在队首删除元素.队列用于存储按顺序排列的数据,先进先出,这点和栈不一样(后入先出).在栈中,最后入栈的元素 ...

  2. JavaScript数据结构与算法-队列练习

    队列的实现 // 队列类 function Deque () { this.dataStore = []; this.enqueueFront = enqueueFront; this.enqueue ...

  3. 数据结构和算法(Golang实现)(14)常见数据结构-栈和队列

    栈和队列 一.栈 Stack 和队列 Queue 我们日常生活中,都需要将物品排列,或者安排事情的先后顺序.更通俗地讲,我们买东西时,人太多的情况下,我们要排队,排队也有先后顺序,有些人早了点来,排完 ...

  4. JavaScript数据结构和算法----队列

    前言 队列和栈很像,只是用了不同的原则.队列是遵循先进先出(FIFO)原则的一组有序的的项,队列在尾部添加新元素,从顶部移除元素.最新添加的元素必须必须排队在队列的,末尾.可以想象食堂排队买饭的样子. ...

  5. c数据结构 -- 栈与队列

    栈和队列 ·栈和队列是两种常用的.重要的数据结构 ·栈和队列是限定插入和删除只能在表的“端点”进行的线性表 栈 只能在队尾插入,只能在队尾删除 -- 后进后出 表尾称为栈顶:表头称为栈底 插入元素到栈 ...

  6. C数据结构-栈和队列,括号匹配举例---ShinePans

    1.栈和队列是两种特殊的线性表             运算操作被限定仅仅能在表的一端或两端插入,删除元素,故也称它们为限定的线性表结构 2.栈的基本运算 1).Stackinit(&s) 构 ...

  7. JavaScript数据结构——栈的实现与应用

    在计算机编程中,栈是一种很常见的数据结构,它遵从后进先出(LIFO——Last In First Out)原则,新添加或待删除的元素保存在栈的同一端,称作栈顶,另一端称作栈底.在栈中,新元素总是靠近栈 ...

  8. JavaScript数据结构——栈的实现

    栈(stack)是一种运算受限的线性表.栈内的元素只允许通过列表的一端访问,这一端被称为栈顶,相对地,把另一端称为栈底.装羽毛球的盒子是现实中常见的栈例子.栈被称为一种后入先出(LIFO,last-i ...

  9. javascript数据结构——栈

    栈是一种高效的数据结构,数据只能在栈顶添加或删除,所以这样操作很快,也很容易实现.栈的使用遍布程序语言实现的方方面面,从表达式求值到处理函数调用.接下来,用JavaScript实现一个栈的数据结构. ...

随机推荐

  1. MySQL 命令杂记

    mysql> show processlist; 如果是root帐号,你能看到所有用户的当前连接.如果是其它普通帐号,只能看到自己占用的连接.show processlist;只列出前100条, ...

  2. sqlserver获取表名,字段名

    一.获取表的基本信息 SELECT [TableName] = [Tables].name , [TableOwner] = [Schemas].name , [TableCreateDate] = ...

  3. XAML-1

    1.XAML Extension Application Marked Language,是WPF技术中专门用来设计UI的语言.XAML是从XML派生出来的,是一种声明式语言,当你看到一个标签,就是声 ...

  4. C#入门篇6-8:字符串操作 深入研究字符串的内存驻留机制

    //字符串的内存驻留机制 public static void Test() { //当有多个字符串变量包含了同样的字符串实际值时, //CLR可能不会为它们重复地分配内存,而是让它们统统指向同一个字 ...

  5. HDU 1688 Sightseeing

    题目链接:Sightseeing 题意:求最短路和比最短路长度+1的所有路径条数. 附代码:用数组记录最短和次短路径的长度和条数,一次更新,直到没有边可以更新. #include <stdio. ...

  6. 10 notorious computer virus

    The history of computer virus is the same as computer history. With more and more powerful computers ...

  7. HTTP协议的chunked编码

    一般情况HTTP的Header包含Content-Length域来指明报文体的长度.如: 有时候服务生成HTTP回应是无法确定消息大小的,比如大文件的下载,或者后台需要复杂的逻辑才能全部处理页面的请求 ...

  8. <input type="hidden" id="haha" name="wang" value="xiaodong" />

    jsp中一个隐藏的文本框,文本框里的值是:xiaodong id属性和name属性:就是在JavaScript中或者控制器中根据id或name属性取它的value的值 开发人员所需要,又不想让用户看到 ...

  9. 获取Android系统的版本号

    int currentVersion = android.os.Build.VERSION.SDK_INT;

  10. iOS 下如果存在UIScrollerView 使用UIScreenEdgePanGestureRecognizer实现侧滑效果失效的问题

    当你在使用UIScreenEdgePanGestureRecognizer手势实现侧滑的时候,如果后期你导航控制器push出的界面中包含UIScrollerView,这个时候你会发现,侧滑效果无法实现 ...