在寫了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 的線性表。與棧相同的是,佇列也是一種重要的線性結構,實現乙個佇列同樣需要順序表或鍊錶作為基礎。我們的輸入緩衝區接受鍵盤的輸入就是按佇列的形式輸入...