队列与栈是很相像的数据结构,不同之处在于队列是是先进先出(FIFO:First In First Out)的。
-
队列需要有如下的方法:
-
enqueue(element(s)): 向队列尾部添加几个项
-
dequeue(): 移除队列的第一项(也就是排在最前面的项)
-
front(): 返回队列的第一个元素,也就是最新添加的那个
-
isAmpty: 检查队列是否为空,为空则返回true
-
clear: 移除队列中所有元素
-
size: 返回队列中元素个数。
-
print: 以字符串显示队列中所有内容
function Queue() {
var items = [];
this.enqueue = function(ele) { items.push(ele); };
this.dequeue = function() { return items.shift() };
this.front = function() { return items[0]; };
this.isAmpty = function() { return items.length === 0 };
this.size = function() { return items.length; };
this.clear = function() { items = []; };
this.print = function() { console.log(items.toString()); }; }
|
应用
function Queue() {
function hotPotato(nameList, num) { var queue = new Queue();
for (var i = 0; i < nameList.length; i++) { queue.enqueue(nameList[i]); }
var eliminated = '';
while (queue.size() > 1) { for (var i = 0; i < num; i++) { queue.enqueue(queue.dequeue()); }
eliminated = queue.dequeue(); console.log(eliminated + " Get out!") }
return queue.dequeue() }
var nameList = ['小明', '小红', '小王', '小绿']
|