摘要:隊列實現使用數組來實現隊列看起來順理成章。中的數組具有其他編程語言中沒有的優點數組的方法可以在數組末尾加入元素方法則可刪除數組的第一個元素。方法將它的參數插入數組中第一個開放的位置該位置總在數組的末尾即使是個空數組也是如此。
隊列實現
使用數組來實現隊列看起來順理成章。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; } }后話
當然,學好前端,你還需要關注一個公眾號!——每日前端
各位兄弟姐妹,共勉!
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/79198.html
摘要:散列表上面的地圖向我們展示了如何用廣度優先搜索的思想找到北京到廣州的最短路線。在廣度優先搜索中,我們需要用到隊列的這種思想來實現查找。建立了下面這個模型武漢廣州西藏上海上海武漢廣州代碼完整實現,利用遞歸和廣度優先搜索的思想實現。 什么是廣度優先搜索? 如果只是是背概念,幼兒園的小朋友都能背下來念給你聽。 假設看這篇文章的都和我一樣是個前端工程師,我們要從廣度優先搜索(BFS)中學到什么...
摘要:之數組操作接下來就是數據結構的第一部分,棧。以字符串顯示棧中所有內容方法的實現說明需要往棧中添加新元素,元素位置在隊列的末尾。的前端樂園原文鏈接寒假前端學習學習數據結構與算法,棧與隊列 本系列的第一篇文章: 學習JavaScript數據結構與算法(一),棧與隊列第二篇文章:學習JavaScript數據結構與算法(二):鏈表第三篇文章:學習JavaScript數據結構與算法(三):集合第...
閱讀 1307·2021-11-04 16:09
閱讀 3504·2021-10-19 11:45
閱讀 2400·2021-10-11 10:59
閱讀 1015·2021-09-23 11:21
閱讀 2768·2021-09-22 10:54
閱讀 1140·2019-08-30 15:53
閱讀 2610·2019-08-30 15:53
閱讀 3482·2019-08-30 12:57