新聞中心
一、隊列簡介
成都創(chuàng)新互聯(lián)是一家專注于網(wǎng)站設(shè)計、做網(wǎng)站與策劃設(shè)計,湄潭網(wǎng)站建設(shè)哪家好?成都創(chuàng)新互聯(lián)做網(wǎng)站,專注于網(wǎng)站建設(shè)10多年,網(wǎng)設(shè)計領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:湄潭等地區(qū)。湄潭做網(wǎng)站價格咨詢:18980820575隊列是是一種受限的線性表,特點(diǎn)為先進(jìn)先出(FIFO:first in first out)。
受限之處在于它只允許在表的前端(front)進(jìn)行刪除操作;在表的后端(rear)進(jìn)行插入操作;
相當(dāng)于排隊買票,先來的先買票,后來的后買票。
隊列的應(yīng)用:
打印隊列:計算機(jī)打印多個文件的時候,需要排隊打?。痪€程隊列:當(dāng)開啟多線程時,當(dāng)新開啟的線程所需的資源不足時就先放入線程隊列,等待CPU處理;
隊列類的實現(xiàn):
隊列的實現(xiàn)和棧一樣,有兩種方案:
基于數(shù)組實現(xiàn);基于鏈表實現(xiàn);
隊列的常見操作:
- enqueue(element):向隊列尾部添加一個(或多個)新的項;
- dequeue():移除隊列的第一(即排在隊列最前面的)項,并返回被移除的元素;
- front():返回隊列中的第一個元素——最先被添加,也將是最先被移除的元素。隊列不做任何變動(不移除元素,只返回元素信息與Stack類的peek方法非常類似);
- isEmpty():如果隊列中不包含任何元素,返回true,否則返回false;
- size():返回隊列包含的元素個數(shù),與數(shù)組的length屬性類似;
- toString():將隊列中的內(nèi)容,轉(zhuǎn)成字符串形式;
二、封裝隊列類
2.1.代碼實現(xiàn)
// 基于數(shù)組封裝隊列類 function Queue() { // 屬性 this.items = [] // 方法 // 1.enqueue():將元素加入到隊列中 Queue.prototype.enqueue = element => { this.items.push(element) } // 2.dequeue():從隊列中刪除前端元素 Queue.prototype.dequeue = () => { return this.items.shift() } // 3.front():查看前端的元素 Queue.prototype.front = () => { return this.items[0] } // 4.isEmpty:查看隊列是否為空 Queue.prototype.isEmpty = () => { return this.items.length == 0; } // 5.size():查看隊列中元素的個數(shù) Queue.prototype.size = () => { return this.items.length } // 6.toString():將隊列中元素以字符串形式輸出 Queue.prototype.toString = () => { let resultString = '' for (let i of this.items){ resultString += i + ' ' } return resultString } }
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。
網(wǎng)站欄目:JavaScript隊列結(jié)構(gòu)Queue實現(xiàn)過程解析-創(chuàng)新互聯(lián)
網(wǎng)頁路徑:http://fisionsoft.com.cn/article/dhgehj.html