JavaScript数据结构——栈和队列

:后进先出(LIFO)的有序集合
队列:先进先出(FIFO)的有序集合
------------------------------------------------------------------------------------------------------
(1)栈方法声明:
首先,采用数组来保存栈里的元素。
序号
方法
说明
1
push ( element(s) )
添加一个(或几个)新元素到栈顶
2
pop ( )
移除栈顶的元素,同时返回被移除的元素
3
peek ( )
返回栈顶的元素,不对栈做任何修改
4
isEmpty ( )
如果栈里没有任何元素就返回 true,否则返回 false
5
clear ( )
移除栈里的所有元素
6
size ( )
返回栈里的元素个数。和数组的 length 属性很类似
对于集合,最好用 size 代替 length 
栈的实现:
 1 function Stack() {
 2     var items = [];
 3 
 4     this.push = function(element) {
 5         items.push(elemnt);
 6     }
 7 
 8     this.pop = function() {
 9         return items.pop();
10     }
11 
12     this.peek = function() {
13         return items[items.length - 1];
14     }
15 
16     this.isEmpty = function() {
17         return items.length == 0;
18     }
19 
20     this.size = function() {
21         return items.length;
22     }
23 
24     this.clear = function() {
25         items = [];
26     }
27 
28     this.print = function() {
29         console.log(items.toString());
30     }
31 }
Stack.js

 

(2)队列方法声明:

首先,采用数组来保存栈里的元素。
序号
方法
说明
1
enqueue ( element(s) )
向队列尾部添加一个(或多个)新的项
2
dequeue ( )
移除队列的第一(即排在队列最前面的)项,并返回被移除的元素
3
front ( )
返回队列中的第一个元素——最先被添加,不对队列做任何修改
4
isEmpty ( )
如果队列里没有任何元素就返回 true,否则返回 false
5 size ( )
返回队列里的元素个数。和数组的 length 属性很类似
队列的实现:
 1 function Queue() {
 2     var items = [];
 3 
 4     this.enqueue = function(element) {
 5         items.push(element);
 6     };
 7 
 8     this.dequeue = function() {
 9         return items.shift();
10     };
11 
12     this.front = function() {
13         return items[0];
14     };
15 
16     this.isEmpty = function() {
17         return items.length == 0;
18     };
19 
20     this.size = function() {
21         return itemt.length;
22     };
23 
24     this.print = function() {
25         console.log(items.toString());
26     };
27 }
Queue.js
 
参考书籍:《学习JavaScript数据结构与算法》
 

posted on 2016-03-19 22:28  Ruth92  阅读(220)  评论(0编辑  收藏  举报

导航