摘要:队列实现使用数组来实现队列看起来顺理成章。中的数组具有其他编程语言中没有的优点数组的方法可以在数组末尾加入元素方法则可删除数组的第一个元素。方法将它的参数插入数组中第一个开放的位置该位置总在数组的末尾即使是个空数组也是如此。
队列实现
使用数组来实现队列看起来顺理成章。JavaScript 中的数组具有其他编程语言中没有的优点, 数组的 push() 方法可以在数组末尾加入元素,shift() 方法则可删除数组的第一个元素。
push() 方法将它的参数插入数组中第一个开放的位置,该位置总在数组的末尾,即使是个 空数组也是如此。请看下面的例子:
names = []; name.push("Cynthia"); names.push("Jennifer"); print(names); // 显示 Cynthia,Jennifer
然后使用 shift() 方法删除数组的第一个元素:
names.shift();
准备开始实现 Queue 类,先从构造函数开始:
function Queue() { this.dataStore = []; this.enqueue = enqueue; this.dequeue = dequeue; this.front = front; this.back = back; this.toString = toString; this.empty = empty; }
enqueue() 方法向队尾添加一个元素:
function enqueue(element) { this.dataStore.push(element); }
dequeue() 方法删除队首的元素:
function dequeue() { return this.dataStore.shift(); }
可以使用如下方法读取队首和队尾的元素:
function front() { return this.dataStore[0]; } function back() { return this.dataStore[this.dataStore.length-1]; }
还需要 toString() 方法显示队列内的所有元素:
function toString() { var retStr = ""; for (var i = 0; i < this.dataStore.length; ++i) { retStr += this.dataStore[i] + " "; return retStr; }
最后,需要一个方法判断队列是否为空:
function empty() { if (this.dataStore.length == 0) { return true; } else { return false; } }代码归纳
function Queue() { this.dataStore = []; this.enqueue = enqueue; this.dequeue = dequeue; this.front = front; this.back = back; } this.toString = toString; this.empty = empty; } function enqueue(element) { this.dataStore.push(element); } function dequeue() { return this.dataStore.shift(); } function front() { return this.dataStore[0]; } function back() { return this.dataStore[this.dataStore.length - 1]; } function toString() { var retStr = ""; for (var i = 0; i < this.dataStore.length; ++i) { retStr += this.dataStore[i] + " "; } return retStr; } function empty() { if (this.dataStore.length == 0) { return true; } else { return false; } }后话
当然,学好前端,你还需要关注一个公众号!——每日前端
各位兄弟姐妹,共勉!
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/79198.html
摘要:散列表上面的地图向我们展示了如何用广度优先搜索的思想找到北京到广州的最短路线。在广度优先搜索中,我们需要用到队列的这种思想来实现查找。建立了下面这个模型武汉广州西藏上海上海武汉广州代码完整实现,利用递归和广度优先搜索的思想实现。 什么是广度优先搜索? 如果只是是背概念,幼儿园的小朋友都能背下来念给你听。 假设看这篇文章的都和我一样是个前端工程师,我们要从广度优先搜索(BFS)中学到什么...
摘要:之数组操作接下来就是数据结构的第一部分,栈。以字符串显示栈中所有内容方法的实现说明需要往栈中添加新元素,元素位置在队列的末尾。的前端乐园原文链接寒假前端学习学习数据结构与算法,栈与队列 本系列的第一篇文章: 学习JavaScript数据结构与算法(一),栈与队列第二篇文章:学习JavaScript数据结构与算法(二):链表第三篇文章:学习JavaScript数据结构与算法(三):集合第...
阅读 1260·2021-11-04 16:09
阅读 3316·2021-10-19 11:45
阅读 2347·2021-10-11 10:59
阅读 972·2021-09-23 11:21
阅读 2731·2021-09-22 10:54
阅读 1093·2019-08-30 15:53
阅读 2563·2019-08-30 15:53
阅读 3437·2019-08-30 12:57