栈:后进先出(LIFO)的有序集合
队列:先进先出(FIFO)的有序集合
------------------------------------------------------------------------------------------------------
(1)栈方法声明:
首先,采用数组来保存栈里的元素。
序号
|
方法
|
说明
|
1
|
push ( element(s) )
|
添加一个(或几个)新元素到栈顶
|
2
|
pop ( )
|
移除栈顶的元素,同时返回被移除的元素 |
3
|
peek ( )
|
返回栈顶的元素,不对栈做任何修改
|
4
|
isEmpty ( )
|
如果栈里没有任何元素就返回 true,否则返回 false
|
5
|
clear ( )
|
移除栈里的所有元素
|
6
|
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 }
(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 }
参考书籍:《学习JavaScript数据结构与算法》