第3章棧和佇列

2021-06-26 09:11:36 字數 1262 閱讀 1045

在寫了2章部落格後我突然明白了許多,有些東西只是寫下來其實是沒有多大用,只不過是把東西從乙個地方搬到另乙個地方,而我其實的確是僅僅把課本上的內容抄了一遍而已,現在我覺得資料結構最重要的是演算法,因此如果想學好它首先應該把演算法看懂,其次把它理解著背過,畢竟最後還是用在操作上,所以我覺得第3章的重點在於對演算法的理解。有些東西只有記在自己腦子裡才是最重要的。以下是我對於資料結構第3章的自我理解。

本章分為兩塊,一是棧,二是佇列。分別從順序儲存和邏輯儲存來介紹的。

對於棧我認為就是個木桶,資料就像裡面有不流動的水,木桶的底部就是棧底,上面就是棧頂,空棧就是桶裡沒水。

它遵循後進先出,即先進去的在最低部,卻是最後出來的。

下面是順序棧的相關演算法

template

void seqstack::push(datatype x)

template

datatype seqstack::pop()

兩棧共享

template

void bothstack::push(int i,datatype x)

template

datatype bothstack::pop(int i)

} 鏈棧的相關演算法

template

void linkstack::push(datatype x)

template

void linkstack

datatype::pop()

關於棧實際上是利用top進行一系列的操作的;其指向棧頂元素.

佇列的相關演算法

佇列的認識就像火車在軌道上行駛對頭像是火車頭,對尾像是最後乙個車廂,它遵循先入先出的原則如同火車進入隧道車頭先進車頭先出。

迴圈對列的相關演算法

template

void cirqueue::enqueue(datatype x)

template

datatype cirqueue::dequeue()

template

datatype cirqueue::getqueue()

鏈佇列的相關演算法

template

linkqueue::linkqueue()

template

void linkqueue::enqueue()

template

datatype linkqueue::dequeue()

關於佇列實際是利用rear與front實現的.

以上是我對第三章的自我理解.

資料結構(第3章 棧和佇列)

棧和佇列都是限定操作的線性表。棧 是限定僅在表尾進行插入或刪除操作的線性表。對棧而言,表尾稱為棧頂,表頭稱為棧底。棧 的特點是後進先出 lifo,last in first out 佇列 是限定在表尾進入插入,在表頭進行刪除操作的線性表。表尾稱為隊尾,表頭稱為隊頭。佇列 的特點是先進先出 fifo,...

棧和佇列 3順序佇列

adrian 由於順序佇列的底層使用的是陣列,因此需預先申請一塊足夠大的記憶體空間初始化順序佇列。除此之外,為了滿足順序佇列中資料從隊尾進,隊頭出且先進先出的要求,我們還需要定義兩個指標 top 和 rear 分別用於指向順序佇列中的隊頭元素和隊尾元素,如圖 1 所示 由於順序佇列初始狀態沒有儲存任...

9 棧和佇列(3)

佇列 queue 是只允許在一端進行插入操作,而在另一端進行刪除操作的線性表。與棧相反,佇列是一種先進先出 first in first out,fifo 的線性表。與棧相同的是,佇列也是一種重要的線性結構,實現乙個佇列同樣需要順序表或鍊錶作為基礎。我們的輸入緩衝區接受鍵盤的輸入就是按佇列的形式輸入...