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

資訊專欄INFORMATION COLUMN

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

JayChen / 1833人閱讀

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

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

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

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

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

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

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

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

2.出棧

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

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

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

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

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/110284.html

相關(guān)文章

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

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

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

    摘要:楊冀龍是安全焦點(diǎn)民間白帽黑客組織核心成員,被浪潮之巔評(píng)為中國(guó)新一代黑客領(lǐng)軍人物之一他在本文中依次分享了對(duì)于黑客的定義如何從黑客成為一名安全創(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)容,以對(duì)外文資料的搜集為...

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

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

    AlphaWallet 評(píng)論0 收藏0
  • 前端小報(bào) - 201901 月刊

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

    soasme 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<