Typescript實(shí)現(xiàn)隊(duì)列的示例代碼
隊(duì)列的概念
- 隊(duì)列是一個(gè)先進(jìn)先出(FIFO)的數(shù)據(jù)結(jié)構(gòu)。
- 由于TS中沒有隊(duì)列,所以我們使用數(shù)組來模擬一個(gè)隊(duì)列并實(shí)現(xiàn)隊(duì)列的所有功能。

隊(duì)列的操作
- enqueue(element):向隊(duì)列尾部添加一個(gè)新的項(xiàng)
- dequeue():移除隊(duì)列的第一項(xiàng),并且返回被移除的元素
- peek():返回隊(duì)列中的第一個(gè)元素
- isEmpty():判斷隊(duì)列是否為空
- size():返回隊(duì)列的元素個(gè)數(shù)
- print_queue():打印隊(duì)列中的元素
代碼實(shí)現(xiàn)
入隊(duì)
enqueue(item:T){
this.items.push(item);
}
移除隊(duì)首元素
//刪除第一個(gè)元素并且返回被刪除的元素
dequeue(){
return this.items.shift();
}
返回隊(duì)首元素
//返回隊(duì)列中的第一個(gè)元素
peek(){
return this.items[0];
}
判斷隊(duì)列是否為空
//判斷隊(duì)列是否為空
isEmpty(){
return this.items.length ? false : true;
}
獲取隊(duì)列的大小
//返回隊(duì)列大小
size(){
return this.items.length;
}
打印隊(duì)列中的元素
//打印隊(duì)列中的元素
print_queue(){
for(let i =0;i<this.items.length;i++){
console.log(this.items[i]);
}
}
代碼測試

測試結(jié)果如下:

完整代碼
//用數(shù)組實(shí)現(xiàn)隊(duì)列
class queue<T>{
private items:T[]
constructor(){
this.items = [];
}
enqueue(item:T){
this.items.push(item);
}
//刪除第一個(gè)元素并且返回被刪除的元素
dequeue(){
return this.items.shift();
}
//返回隊(duì)列中的第一個(gè)元素
peek(){
return this.items[0];
}
//判斷隊(duì)列是否為空
isEmpty(){
return this.items.length ? false : true;
}
//返回隊(duì)列大小
size(){
return this.items.length;
}
//打印隊(duì)列中的元素
print_queue(){
for(let i =0;i<this.items.length;i++){
console.log(this.items[i]);
}
}
}
let queue_example= new queue();
queue_example.enqueue(10)
queue_example.enqueue('熊大')
if(queue_example.isEmpty()){console.log('隊(duì)列為空')}
else{console.log('隊(duì)列非空')}
queue_example.print_queue();
console.log('隊(duì)首元素是:'+queue_example.peek());
queue_example.dequeue()
console.log(queue_example.peek());到此這篇關(guān)于Typescript實(shí)現(xiàn)隊(duì)列的示例代碼的文章就介紹到這了,更多相關(guān)Typescript 隊(duì)列內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Js動(dòng)態(tài)設(shè)置rem來實(shí)現(xiàn)移動(dòng)端字體的自適應(yīng)代碼
這篇文章主要介紹了Js動(dòng)態(tài)設(shè)置rem來實(shí)現(xiàn)移動(dòng)端字體的自適應(yīng)代碼,代碼簡單易懂非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2016-10-10
TypeScript泛型參數(shù)默認(rèn)類型和新的strict編譯選項(xiàng)
這篇文章主要介紹了TypeScript泛型參數(shù)默認(rèn)類型和新的strict編譯選項(xiàng),對(duì)TypeScript感興趣的同學(xué),可以參考下2021-05-05
javascript如何在foreach循環(huán)完成之后執(zhí)行一個(gè)回調(diào)函數(shù)
forEach()是前端開發(fā)中操作數(shù)組的一種方法,主要功能是遍歷數(shù)組,其實(shí)就是 for 循環(huán)的升級(jí)版,下面這篇文章主要給大家介紹了關(guān)于javascript如何在foreach循環(huán)完成之后執(zhí)行一個(gè)回調(diào)函數(shù)的相關(guān)資料,需要的朋友可以參考下2023-11-11
JS實(shí)現(xiàn)隱藏同級(jí)元素后只顯示JS文件內(nèi)容的方法
這篇文章主要介紹了JS實(shí)現(xiàn)隱藏同級(jí)元素后只顯示JS文件內(nèi)容的方法,可實(shí)現(xiàn)將與js文件的同級(jí)元素全部隱藏,只顯示js文件內(nèi)容的功能,涉及javascript針對(duì)頁面元素的遍歷與屬性修改相關(guān)技巧,需要的朋友可以參考下2016-09-09
js將iframe中控件的值傳到主頁面控件中的實(shí)現(xiàn)方法
主要是通過在主頁面定義一個(gè)傳輸數(shù)據(jù)的函數(shù)GetData(data),然后在iframe嵌入頁面中通過parent.GetData(data),這樣即可在GetData實(shí)現(xiàn)將data進(jìn)行處理即可。2013-03-03

