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

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

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

棧的概念

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

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

棧的示意圖

棧的操作

  • 入棧:添加一個新元素至棧頂
  • 出棧:將棧頂元素移除并返回被移除的元素
  • 獲取棧頂元素:獲取當(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. 獲取棧的大?。褐苯臃祷貤5拈L度即可

代碼實現(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
  • 最新評論

    永福县| 岑溪市| 延长县| 崇阳县| 曲周县| 南昌市| 霍城县| 吉首市| 迭部县| 尚志市| 内黄县| 开阳县| 华坪县| 安西县| 顺义区| 扎兰屯市| 拉萨市| 化德县| 霞浦县| 上思县| 德格县| 东阿县| 开化县| 桐城市| 彭泽县| 翁源县| 湘潭市| 孟州市| 栖霞市| 苍山县| 汝城县| 桃源县| 鄄城县| 平果县| 中江县| 虞城县| 开封县| 濉溪县| 靖江市| 新沂市| 靖宇县|