成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

TypeScript版算法與數(shù)據(jù)結(jié)構(gòu)-棧

JayChen / 1830人閱讀

摘要:時間復(fù)雜度是出棧在有之前數(shù)組的基礎(chǔ)上,出棧也非常簡單,實際上的底層操作就是刪除數(shù)組中的最后一個元素,并返回該元素。出棧也是一個時間復(fù)雜度為的操作更多相關(guān)數(shù)據(jù)結(jié)構(gòu),可以前往我的。

本文的源碼在這里,可以參考一下

棧也是一種使用非常廣泛的線性數(shù)據(jù)結(jié)構(gòu),它具有后進先出last in first out的特點。就像我們平時一本一本的往桌上放書,等到我們又想用書時,我們首先接觸到的總是我們最后一本放上去的書。
棧的添加和刪除操作總是在棧的一端完成,這一端被稱為棧頂,對于棧的實現(xiàn),我會采用上一篇中實現(xiàn)的數(shù)組作為底層的數(shù)據(jù)結(jié)構(gòu),所有棧的操作都會在這個底層的數(shù)組中完成。棧的主要操作有兩個,一個是入棧,一個是出棧
首先我們會定義一個TypeScript接口,這個接口會包含基礎(chǔ)的棧這個類的實現(xiàn)

interface Stack {
    getSize(): number; // 獲取棧中元素的個數(shù)
    isEmpty(): boolean; // 判斷棧是否為空
    push(e: E): void; // 入棧一個元素
    pop(): E; // 出棧一個元素
    peek(): E; // 查看棧頂元素
}

再來看看我們類的實例屬性和構(gòu)造函數(shù),其中MyArray就是上一篇中實現(xiàn)的數(shù)組,初始狀態(tài)下,我們依然會給棧一個初始的容量10。

class ArrayStack implements Stack {
    private array: MyArray;
    constructor(capacity: number = 10) {
        this.array = new MyArray(capacity);
    }
}
1.入棧

在有之前數(shù)組的基礎(chǔ)上,入棧也是一個非常簡單的過程,實際上底層的操作就是往數(shù)組的末尾添加一個元素。時間復(fù)雜度是O(1)

public push(e: E): void {
    this.array.addLast(e);
}

2.出棧

在有之前數(shù)組的基礎(chǔ)上,出棧也非常簡單,實際上的底層操作就是刪除數(shù)組中的最后一個元素,并返回該元素。出棧也是一個時間復(fù)雜度為O(1)的操作

public pop(): E {
    return this.array.removeLast();
}

更多相關(guān)數(shù)據(jù)結(jié)構(gòu),可以前往我的github。持續(xù)更新中,喜歡的話給個star~相關(guān)的問題也可以提issue,看到后會第一時間回復(fù)

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/110284.html

相關(guān)文章

  • 前端每周清單第 45 期: Safari 支持 Service Worker, Parcel 完整教

    摘要:的另一個核心特性,蘋果表示也正在開發(fā)中,按開發(fā)進度可能幾個月后就能與我們見面。是基于的本地化數(shù)據(jù)庫,支持以及瀏覽器環(huán)境。 前端每周清單專注前端領(lǐng)域內(nèi)容,以對外文資料的搜集為主,幫助開發(fā)者了解一周前端熱點;分為新聞熱點、開發(fā)教程、工程實踐、深度閱讀、開源項目、巔峰人生等欄目。歡迎關(guān)注【前端之巔】微信公眾號(ID: frontshow),及時獲取前端每周清單。 本期是 2017 年的最后一...

    趙春朋 評論0 收藏0
  • 前端每周清單第 43 期:2017 JavaScript 回顧、Rust WebAssembly

    摘要:楊冀龍是安全焦點民間白帽黑客組織核心成員,被浪潮之巔評為中國新一代黑客領(lǐng)軍人物之一他在本文中依次分享了對于黑客的定義如何從黑客成為一名安全創(chuàng)業(yè)者技術(shù)創(chuàng)業(yè)踩過的坑給技術(shù)創(chuàng)業(yè)者建議等內(nèi)容。 showImg(https://segmentfault.com/img/remote/1460000012377230?w=1240&h=796); 前端每周清單專注前端領(lǐng)域內(nèi)容,以對外文資料的搜集為...

    xorpay 評論0 收藏0
  • 使用TypeScript和Canvas編寫移動端貪吃蛇大作戰(zhàn)游戲

    摘要:基本介紹一款移動端貪吃蛇大作戰(zhàn)游戲。主要的游戲邏輯有貪吃蛇移動碰撞檢測貪吃蛇碰撞碰撞墻壁和吃食物。貪吃蛇的身體如何跟隨頭部移動需要分為兩種情況,在單位時間內(nèi)貪吃蛇移動一單位長度和貪吃蛇移動多單位長度。 基本介紹 一款移動端貪吃蛇大作戰(zhàn)游戲。(只支持移動端) 這是一個臨近 deadline 的課設(shè)項目,為了方便地使用TS,我直接使用angular-cli生成了TypeScript的項...

    AlphaWallet 評論0 收藏0
  • 前端小報 - 201901 月刊

    摘要:月日,官方團隊在中宣布將對進行重大更改,主要包括將代碼庫從移植到,不再支持和,并為新增了一些功能等,這個更改項目代號為,目的是增強優(yōu)勢,彌補弱勢。調(diào)查結(jié)果顯示在年度榮獲最受歡迎的編程語言。 訂閱 / 投稿:https://github.com/txd-team/monthly本期小編:x-cold (尹摯) 新聞快報 重磅消息:Github 宣布私有倉庫免費,同期還上線了星標(biāo)話題?(...

    soasme 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<