/* 1.佇列
佇列是遵循先進先出(fifo,也稱為先來先服務)原則的一組有序的項。
佇列在尾部新增新 元素,並從頂部移除元素。
最新新增的元素必須排在佇列的末尾 */
class queue ;}//向佇列新增元素
enqueue(element)
//檢查佇列是否為空並獲取它的長度
isempty()
//從佇列移除元素
dequeue()
const result = this.items[this
.lowestcount];
delete
this.items[this
.lowestcount];
this.lowestcount++;
return
result;
}//從佇列移除元素
peek()
return
this.items[this
.lowestcount];
}//清空佇列
clear();
this.count = 0;
this.lowestcount = 0;
}//建立 tostring 方法
/*在 stack 類中,我們從索引值為 0 開始迭代 items 中的值。由於 queue 類中的第乙個索引
值不一定是 0,我們需要從索引值為 lowestcount 的位置開始迭代佇列。
*/tostring()
let objstring = `$`;
for (let i = this.lowestcount + 1; i < this.count; i++) ,$` }}
}
/*雙端佇列(deque,或稱 double-ended queue)是一種允許我們同時從前端和後端新增和移除
元素的特殊佇列
由於雙端佇列同時遵守了先進先出和後進先出原
則,可以說它是把佇列和棧相結合的一種資料結構。
既然雙端佇列是一種特殊的佇列,我們可以看到其建構函式中的部分**和佇列相同,包括
相同的內部屬性和以下方法:isempty、clear、size 和 tostring。
*/class deque ;
}// 檢查佇列是否為空並獲取它的長度
isempty()
// 向佇列新增元素
addback(element)
// 向雙端佇列的前端新增元素
addfront(element) else if(this.lowestcount>0) else
this.items[i] = this.items[i - 1];
} this.count++;
this.lowestcount = 0;
this.items[0] = element; // }}
}
佇列 , 雙端佇列, 棧
注意 linkedlist中新增或者取出的方法有很多,比如add,offer,offerfirst,offerlast,push.根據使用的資料結構不同,最好區分使用.一,佇列queue fifo first in first out 0,模型上一般為右進左出,右端入隊並稱為隊尾,左端出隊並稱為隊頭...
棧 佇列 雙端佇列
棧 stack 有些地方稱為堆疊,是一種容器,可存入資料元素 訪問元素 刪除元素,由於棧資料結構只允許在一端進行操作,因而按照後進先出 lifo,last in first out 的原理運作。棧結構實現 棧可以用順序表實現,也可以用鍊錶實現。棧的操作 功能stack 建立乙個新的空棧 push i...
棧 佇列 雙端佇列
一 棧結構實現 class stack object 棧 def init self self.items defis empty self 判斷是否為空 return self.items defpush self,item 加入元素 defpop self 彈出元素 return self.it...