嚴蔚敏版資料結構學習筆記(3) 棧

2021-08-10 20:27:11 字數 1043 閱讀 7290

棧是只能在表尾進行插入和刪除的一種簡單一點的線性表。表尾端是棧頂(top),表頭端是棧底(bottom),不含元素的稱為空棧。因為我們只能對棧頂的元素進行插入和刪除操作,所以棧這個資料結構就是乙個很有」原則」的結構,棧的修改是按照後進先出的原則進行的,也就是lifo(last in first on)。

可知棧也是可以有插入刪除,當然也有棧的初始化,判空以及取棧頂的操作,下面來羅列一下

adt stack

相同的,棧也是分為順序棧和鏈棧。

我們先來定義乙個順序棧:

typedef struct sqstack;
現在我們來試著實現構造乙個空棧的操作:

status initstack(sqstack &s)
接下來我們就要來試試資料結構中最常見的乙個方法了,插入操作。

status push(sqstack &s,selemtype e)     

*s.top++ = e;

return ok;

}

下面我們來看一下刪除棧頂元素的操作:

status pop(sqstack &s,selemtype &e)
棧頂的刪除是不是要簡單的多呢,沒錯,相比線性表和鍊錶,棧頂的刪除只需要乙個步驟,那就是把使棧頂減一即可;

棧還有乙個操作就是返回棧頂元素的操作:

status gettop(sqstack &s,selemtype &e)
既然線性表有他的順序結構和鏈式結構,那麼同樣的我們的棧也有類似的鏈式結構:

那麼他的操作門和順序結構的有何不同呢.我會在接下來慢慢的實現鏈式棧的功能,並上載;

包括定義乙個鏈式棧的結構體,初始化乙個鏈式棧(initstack()),返回棧頂元素(gettop()),刪除棧頂元素(pop()),新增棧頂元素(push())等

嚴蔚敏 資料結構學習筆記1

要點 1.名詞術語的含義 2.演算法五個要素的確切含義 3.計算語句頻度和估算演算法時間複雜度的方法 演算法的五大要素 1.有窮性 有時間限制,不能無窮執行 2.確定性 每種情況都有演算法對應 規則確定 3.可行性 所有操作足夠基本,可通過有限次數實現 4.輸入 有輸入,作為演算法加工物件的量值 5...

嚴蔚敏資料結構學習筆記一 緒論

第一章 緒論 1.1資料結構討論的範疇 演算法 怎麼處理問題 資料結構 問題的數學模型 1.2基本概念 一,資料與資料結構 資料 符號的集合 資料元素 資料中的元素 資料項 資料元素是資料項的集合,資料結構中討論的最小單位 資料結構 帶結構的資料元素的集合 資料結構形式定義 資料元素,資料元素上的關...

資料結構 嚴蔚敏版 緒論

資料 所有能被輸入到計算機中,且能被計算機處理的符號的集合。資料元素 資料中的乙個 個體 資料結構中討論的基本單位。資料結構 帶結構的資料元素的集合。資料的邏輯結構可以分為 1.集合結構 資料元素關係 結構之間的元素同屬於乙個集合體 2.線性結構 資料元素關係 結構之間的元素存在一對一的關係 3.樹...