考研之資料結構(第三章總結)

2021-10-02 04:15:10 字數 1068 閱讀 6571

1.棧:是一種只能在一端(表尾)進行插入或刪除操作的線性表。

允許進行插入或刪除的一端成為棧頂(top),表的另一端成為棧底(棧底固定不變)

主要特點:先進後出(filo)

可用順序表和煉表來儲存棧,可分為順序棧和鏈棧。

n個順序入棧,可在任意時刻出棧,則出棧序列個數:n=1/(n+1) c_2n^n=(2n)!/[(n+1)!n!]

儲存棧的一組陣列根據是否需要增大可分為靜態順序棧和動態順序棧。

2.佇列:是一種僅允許在表的一端(隊尾rear)進行插入,在表的另一端(隊頭front)進行刪除的線性表

主要特點:先進先出(fifo)

可用順序表和煉表來儲存佇列,可分為順序佇列和鏈隊

名稱 空狀態 滿狀態

順序棧 st.top==-1 st.topmaxsize-1

鏈棧 1st->nextnull 無

迴圈佇列 qu.rearqu.front (qu.rear+1)%maxsizequ.front

鏈隊 1qu->frontnull或1qu->frontnull 無

4.兩個棧可以模擬乙個佇列,但反之不行。

5.迴圈佇列個數:n=(尾-頭+表長)%表長

6.共享棧的主要作用:為了提高記憶體的利用率和減少溢位的可能性。

7.遞迴:乙個函式(或過程)直接或間接地呼叫本身

遞迴程式執行中需借助棧這種資料結構來實現。

有效的遞迴呼叫函式(或過程)應包括:遞推規則、終止條件。

遞迴程式的優、缺點是什麼?

答:遞迴程式的優點是程式結構簡單、清晰,易證明其正確性。缺點是執行中佔記憶體空間較多,執行效率低。

8.迴圈佇列:用常規意義下順序儲存結構的一維陣列表示佇列,由於佇列的性質(隊尾插入和隊頭刪除),容易造成「假溢位」現象,即隊尾已到達一維陣列的高下標,不能再插入,然而隊中元素個數小於佇列的長度(容量)。迴圈佇列是解決「假溢位」的一種方法。通常把一維陣列看成首尾相接。在迴圈佇列下,通常採用「犧牲乙個儲存單元」或「作標記」的方法解決「隊滿」和「隊空」的判定問題。

資料結構之第三章 棧

出棧特點 後進先出 最近忙著準備期末的考試,要知道大學生掛科是一件很可怕的事情。先將一點棧的知識記錄下來,一學期過了課本啥的也就丟了。棧是一種只能在一端進行刪除插入或刪除操作的線性表。棧中的資料元素的邏輯關係呈線性關係,所以棧可以和線性表一樣採用順序儲存結構進行儲存。採用順序儲存結構的棧稱為順序棧。...

(資料結構)第三章 列表

向量中的秩同時對應於邏輯和物理次序,而位置僅對應於邏輯次序。3.3.1 資料結構支援的操作 靜態和動態。size 和get 均可以在常數時間內完成。insert 和remove 均需要線性時間完成。鍊錶是一種典型的動態儲存結構。節點之間通過指標相互索引和訪問。列表是鍊錶結構的一般化推廣,其中的元素稱...

資料結構 第三章 佇列

佇列 queue 具有一定操作約束的線性表 特點 fifo 即先來先服務,只能在一端插入,在另一端刪除 順序儲存實現 由乙個一維陣列和乙個記錄頭元素位置的變數front以及乙個記錄隊尾元素位置的變數rear組成 define maxsize 儲存資料元素的最大個數 struct qnode type...