資料結構 第三章學習小結

2022-09-13 17:45:27 字數 914 閱讀 1390

內容小結:

第三章學習了兩種特殊的線性表—棧和佇列,其中包括:

1.棧和佇列的定義和特點:

①棧是限定僅在表尾進行插入或刪除操作的線性表,元素後進先出(lifo),而佇列是限定在表頭刪除、表尾插入的線性表,元素先進先出(fifo);

2.棧和佇列的兩種儲存結構以及其基本操作:

①利用迴圈佇列,避免了「假溢位」問題,需要注意凡是涉及隊頭或隊尾指標的修改操作都要對其進行模運算,比較特殊;

②順序結構的棧和佇列需要注意每次插入元素時空間是否為滿,刪除元素時空間是否為空;

3.遞迴演算法:

①學習了漢諾塔問題,了解到棧在演算法中如何提供工作棧來儲存工作記錄、從而實現遞迴;

②根據遞迴公式來求解問題,分為自底向上和自頂向下兩種求解方法,前者由迭代實現,後者由遞迴實現,但需要注意重複子問題的情況。

心得體會:

①括號匹配:注意題目裡的字元輸入是包括空格的,因此輸入是使用getline函式實現,getline函式終止符為『/0』。

②銀行佇列:由於對迴圈佇列理解不深,總是輸出0和無意義數字,後來檢查自己的**,發現是因為出隊操作誤取出了隊尾元素_(:з」∠)_。以後要更加仔細一點檢查**,避免...這類低階錯誤發生。

2.分組討論-繞彎查詢:我們小組選擇順序表來實現**,但是起初陷入了誤區,想用編號來替換下標,研究如何將字串轉換成數字(查到的資料太高深),後來轉換思路,運用temp儲存上次查詢的最終位置和break退出當前查詢迴圈來減少查詢次數。這些小技巧在平時可能都不太會關注,但在提高效率上挺實用的。

鞏固了順序表和煉表的相關操作,但對於迴圈鍊錶等一些特殊鍊錶可能還是有點生疏……

接下來的目標:

鞏固之前學習的棧和佇列的相關操作,繼續努力學習接下來的第四章知識(ง •_•)ง。

資料結構第三章學習小結

一 本章內容小結 第三章主要學習了兩種資料結構 棧和佇列,它們是操作受限的線性表。棧只能在棧頂進行插入和刪除,因此先進後出 而佇列則是在隊頭刪除,隊尾插入,先進先出,因此需要根據題目來選取應用哪種資料結構。後面還通過棧來處理遞迴問題,並分析遞迴方法的效率與時間複雜度,最後通過學習三個經典案例 括號匹...

資料結構第三章學習小結

1.這一章學習了兩種新的結構,棧和佇列,棧是後進先出的結構,佇列是先進先出的結構,兩種結構的特點決定了兩種結構使用的場景。下面對棧和佇列的一些基本操作進行展示。一 棧 分為順序棧和鏈棧,這裡是順序棧的一些基本操作 1 include 2 include 3 using namespace std 4...

資料結構 第三章學習小結

1.本章內容小結 本章系統學習了佇列 fifo 和棧 lifo 的的各兩種實現方式以及它的一些應用。本章用鏈式儲存結構和順序儲存結構分別實現了佇列和棧,其中佇列的迴圈鍊錶的產生原因以及解決辦法 也就是使用迴圈鍊錶 讓我知道取模運算子 的作用比我想象的大。2.完成作業或實踐的心得 作業或實踐都是跟第三...