摘要:時(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 ArrayStack1.入棧implements Stack { private array: MyArray ; constructor(capacity: number = 10) { this.array = new MyArray (capacity); } }
在有之前數(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
摘要:的另一個(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 年的最后一...
摘要:楊冀龍是安全焦點(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ì)外文資料的搜集為...
摘要:基本介紹一款移動(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)...
摘要:月日,官方團(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)話題?(...
閱讀 2249·2021-11-17 09:33
閱讀 2789·2021-11-12 10:36
閱讀 3411·2021-09-27 13:47
閱讀 903·2021-09-22 15:10
閱讀 3499·2021-09-09 11:51
閱讀 1406·2021-08-25 09:38
閱讀 2767·2019-08-30 15:55
閱讀 2620·2019-08-30 15:53