資料結構總結 針對考研

2021-09-25 18:41:00 字數 1449 閱讀 6914

1. 深刻理解資料結構的概念,掌握資料結結構的「三要素」:

2. 掌握計算語句頻度和估算演算法時間複雜度的方法。大綱要求

1. 線性表的邏輯

2.線性表的順序儲存結構

3.線性表的鏈式儲存結構

靜態鍊錶

借助陣列來描述線性表的鏈式儲存結構,結點也有資料域data和指標域next,與前面所見的鍊錶中的指標不同的是,這裡的指標式結點的相對位址(陣列的下標),稱之為靜態指標。

靜態鍊錶適用於不支援「指標」的高階語言,或者最大元素數固定但插入、刪除操作頻繁的鍊錶應用中。有關基於靜態鍊錶上的線性表的操作基本與動態鍊錶相同,除了一些描述方法有些區別外,演算法思路是相同的。

特點:

順序表和煉表的各自的優缺點以及適用的場合.

t順序表和煉表的比較:

1.順序表和煉表各有優缺點。

順序儲存有點:

方法簡單,各種高階語言中都有陣列,容易實現。

不用為表示結點間的邏輯關係而增加額外的儲存開銷。

順序表具有按元素序號隨機訪問的特點。

缺點:4. 在順序表中做插入刪除操作時,平均移動大約表中一半的元素,因此對n較大的順序表效率低。

5. 需要預先分配足夠大的儲存空間。估計過大,可能會導致順序表後部大量閒置;預先分配過小,又會造成溢位。

鍊錶中的優缺點與順序表相反。

在實際中怎樣選取儲存結構?

基本儲存的考慮

順序表在程式之前必須明確規定它的儲存規模,也就是說事先對「max_size」要有合適的設定,過大造成浪費,過小造成溢位,可見線性表的長度或儲存規模難以估計時,不宜採用順序表;

鍊錶不用事先估計處處規模,但鍊錶的儲存密度較低。顯然鏈式儲存結構的儲存密度是小於1倍。

基於運算的考慮

在順序表中按序號訪問ai 的時間效能時o(1)。而鍊錶中按序號訪問的時間效能o(n),所以如果經常做的運算時按序號訪問資料元素,顯然順序表優於鍊錶;而在順序表中做插入、刪除時平均移動表中一半的元素,當資料元素的資訊量較大且表較長時,這一點是不應忽視的,在鍊錶中作插入、刪除。雖然也要找插入位置,但操作主要是比較操作,從這個角度考慮顯然後者優於前者。

基於環境的考慮

順序表容易實現,任何高階語言中都有陣列型別,鍊錶的操作是基於指標的,相對來講,前者簡單些,也是對使用者考慮的有乙個因素。

總之,倆種儲存結構各有長短,選擇那一種由實際問題中的主要因素決定。通常「較穩定」的線性表選擇順序儲存。而頻繁做插入刪除的即動態較強的線性表適宜算則鏈式儲存。

本章重點

了解線性表的邏輯結構特性是資料元素之間存在著線性關係,在計算機中表示這倆種關係的倆類不同的儲存結構是順序儲存結構和鏈式儲存結構。

熟練掌握這倆類儲存結構的描述方法,以及線性表的各種基本操作的實現。重點掌握:初始化、查詢、插入、刪除、遍歷、逆置、合併、分解等操作

能夠從時間和空間複雜度的角度綜合比較線性表倆種儲存結構的不同特點及其適用場合。

考研資料結構面試總結

day1 q1 雜湊訪問的優缺點 a1 優點 檢索,增加,刪除節點操作都很快。缺點 可能會產生衝突,解決衝突會增加時間和空間的開銷。q2 從有序表中刪除其值在給定值s與t之間的所有元素。口述 a2 先尋找值大於等於s的第乙個元素 第乙個刪除的元素 然後尋找大於t的第乙個人元素 最後乙個刪除的元素的下...

考研資料結構

一 考研中的變數型別 1 基本型別 int float char 2 指標型別 3 結構體型 陣列,結構體 4 void型 考研中 定義無返回值函式。二 控制語句 1 判斷語句if 做決策 2 迴圈語句 做重複的事 for while 講講break與continue break結束整個迴圈 con...

考研資料結構 MaxHeap

原理這裡我們建立的是最大堆,用完全二叉樹來表示這個堆 1.堆頂比兩棵子樹中的任何元素都要大 2.每棵子樹同樣滿足這個條件 即根是樹中最大值,每棵子樹的根是子樹中的最大值 所以我們在構造的時候要先從最小的子樹開始構造,這樣才能構造更大的子樹 建立大頂堆,a 1 為最大元素 typedef struct...