最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Typescript實現(xiàn)棧的方法示例

 更新時間:2024年08月23日 10:40:13   作者:samroom  
本文主要介紹了Typescript實現(xiàn)棧的方法示例,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

棧的概念

棧(Stack):是只允許在一端進行插入或刪除的線性表。首先棧是一種線性表,但限定這種線性表只能在某一端進行插入和刪除操作。此外,棧還遵循后進先出(LIFO)原則,或者說先進后出原則。

棧頂:線性表插入或者刪除元素的一端。

棧的示意圖

棧的操作

  • 入棧:添加一個新元素至棧頂
  • 出棧:將棧頂元素移除并返回被移除的元素
  • 獲取棧頂元素:獲取當(dāng)前棧頂元素并返回
  • 判斷棧是否為空:判斷棧中是否有數(shù)據(jù)即可
  • 清空棧:移除棧內(nèi)所有的元素
  • 獲取棧的大?。悍祷貤V性氐膫€數(shù)
  • 打印棧中元素:遍歷并輸出棧中元素

功能實現(xiàn)描述

上述操作中其實有很多都有現(xiàn)成的API可以直接使用并實現(xiàn)上實現(xiàn)上述操作:
1. 入棧(push):可以使用數(shù)組的push方法直接往數(shù)組的末尾添加元素。
2. 出棧(pop):可以使用數(shù)組的pop方法直接移除棧中的元素,該方法會返回當(dāng)前被移除的元素。
3. 獲取棧頂元素(peek):可以通過數(shù)組的長度-1獲取到數(shù)組中的最后一個元素。
4. 判斷棧是否為空(isEmpty):可以通過判斷數(shù)組的長度是否為0來實現(xiàn)。
5. 清空棧(clear):可以將數(shù)組直接賦值為空或者調(diào)用出棧方法直至棧中的數(shù)據(jù)為空。
6. 獲取棧的大小:直接返回棧的長度即可

代碼實現(xiàn)

入棧

  //入棧
    push(item:T){
        this.items.push(item);
    }

出棧

 //出棧
    pop(){
        return this.items.pop();
    }

返回棧頂元素

//返回棧頂元素
    peek(){
        return this.items[this.items.length-1];
    }

判斷棧是否為空

 //判斷棧是否為空
    isEmpty(){
        return this.items.length ? false : true;
    }

清空棧的元素

clear(){
        this.items = [];
    }

獲取棧的大小

 //獲取棧內(nèi)元素數(shù)量
    size():number{
        return this.items.length;
    }

輸出棧內(nèi)數(shù)據(jù)

 print_stack(){
        if(this.isEmpty()) console.log('棧為空');
        for(let i = 0;i < this.items.length;i++){
            console.log(this.items[i]);
        }
    }

測試

let stack_example = new stack();
//添加兩個元素
stack_example.push(5);
stack_example.push(6);
//判斷是否棧為空
if(stack_example.isEmpty()) {console.log('棧為空')}
else {console.log('棧不為空')}
//打印棧中元素
stack_example.print_stack();
//輸出棧中元素數(shù)量
console.log('棧中有:'+stack_example.size()+'個元素');
//刪除棧頂元素
stack_example.pop()
//再次打印棧中元素
stack_example.print_stack();

測試結(jié)果如下:

測試結(jié)果

完整代碼實現(xiàn)

//棧的實現(xiàn)
//數(shù)組棧
class stack<T>{
    private items:T[]

    constructor(){
        this.items = [];
    }
    //入棧
    push(item:T){
        this.items.push(item);
    }
    //出棧
    pop(){
        return this.items.pop();
    }

    //返回棧頂元素
    peek(){
        return this.items[this.items.length-1];
    }

    //判斷棧是否為空
    isEmpty(){
        return this.items.length ? false : true;
    }

    //清空棧的棧內(nèi)元素
    clear(){
        this.items = [];
    }

    //輸出棧內(nèi)數(shù)據(jù)
    print_stack(){
        if(this.isEmpty()) console.log('棧為空');
        for(let i = 0;i < this.items.length;i++){
            console.log(this.items[i]);
        }
    }

    //獲取棧內(nèi)元素數(shù)量
    size():number{
        return this.items.length;
    }
}

let stack_example = new stack();
//添加兩個元素
stack_example.push(5);
stack_example.push(6);
//判斷是否棧為空
if(stack_example.isEmpty()) {console.log('棧為空')}
else {console.log('棧不為空')}
//打印棧中元素
stack_example.print_stack();
//輸出棧中元素數(shù)量
console.log('棧中有:'+stack_example.size()+'個元素');
//刪除棧頂元素
stack_example.pop()
//再次打印棧中元素
stack_example.print_stack();

到此這篇關(guān)于Typescript實現(xiàn)棧的方法示例的文章就介紹到這了,更多相關(guān)Typescript 棧內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家! 

相關(guān)文章

  • 基于HTML+JS實現(xiàn)簡單的年齡計算器

    基于HTML+JS實現(xiàn)簡單的年齡計算器

    JavaScript提供了一些內(nèi)置的日期和時間函數(shù),有助于從日期(出生日期)開始計算年齡。本文主要介紹了使用這些JavaScript方法,制作一個簡單的年齡計算器,快來跟隨小編一起學(xué)習(xí)學(xué)習(xí)吧
    2021-12-12
  • JS實現(xiàn)求出一個字符串中最多出現(xiàn)的字符和個數(shù)

    JS實現(xiàn)求出一個字符串中最多出現(xiàn)的字符和個數(shù)

    這篇文章主要為大家介紹了字符串中最多的重復(fù)字符的計算代碼,需要的朋友可以參考下
    2007-07-07
  • JS跳出循環(huán)的5種方法總結(jié)(return、break、continue、throw等)

    JS跳出循環(huán)的5種方法總結(jié)(return、break、continue、throw等)

    想必大家都遇到過循環(huán)遍歷時遇到滿足條件的時候就跳出循環(huán)這樣的需求,于是整理了一篇各種循環(huán)是如何結(jié)束的,這篇文章主要給大家介紹了關(guān)于JS跳出循環(huán)的5種方法,分別是return、break、continue、throw等的相關(guān)資料,需要的朋友可以參考下
    2024-05-05
  • javascript實現(xiàn)狀態(tài)欄中文字動態(tài)顯示的方法

    javascript實現(xiàn)狀態(tài)欄中文字動態(tài)顯示的方法

    這篇文章主要介紹了javascript實現(xiàn)狀態(tài)欄中文字動態(tài)顯示的方法,涉及JavaScript基于時間函數(shù)動態(tài)操作頁面元素屬性的相關(guān)技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-10-10
  • 最新評論

    麟游县| 平和县| 眉山市| 浠水县| 富源县| 沁源县| 祥云县| 潮州市| 维西| 修水县| 聂拉木县| 安西县| 阜宁县| 蒙山县| 洪湖市| 龙山县| 唐山市| 故城县| 广元市| 金乡县| 石首市| 尼勒克县| 浑源县| 安顺市| 拜城县| 桓仁| 汝南县| 绥宁县| 英超| 余江县| 石屏县| 惠来县| 六盘水市| 扶风县| 高陵县| 油尖旺区| 泰兴市| 龙海市| 浦江县| 惠安县| 沿河|