国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

TypeScript版算法與數據結構-棧

JayChen / 1824人閱讀

摘要:時間復雜度是出棧在有之前數組的基礎上,出棧也非常簡單,實際上的底層操作就是刪除數組中的最后一個元素,并返回該元素。出棧也是一個時間復雜度為的操作更多相關數據結構,可以前往我的。

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

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

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

再來看看我們類的實例屬性和構造函數,其中MyArray就是上一篇中實現的數組,初始狀態下,我們依然會給棧一個初始的容量10。

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

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

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

2.出棧

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

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

更多相關數據結構,可以前往我的github。持續更新中,喜歡的話給個star~相關的問題也可以提issue,看到后會第一時間回復

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/110284.html

相關文章

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

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

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

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

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

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

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

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

    soasme 評論0 收藏0

發表評論

0條評論

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