資料結構總結

2021-09-13 14:04:56 字數 1509 閱讀 9511

資料結構:相互之間存在一種,或者多種特定關係的資料元素的集合

資料:能夠輸入計算機中,由計算機處理的元素

結構:資料之間的關係

例如:點狀,線性,星形,樹形

連續儲存的資料結構,通過起始陣列和偏移量來對其中每乙個元素進行訪問

優勢:隨機訪問性好,占用空間較小

時間複雜度:o(1)

線性儲存:每個元素都有乙個前驅元素和後續元素,連續儲存

插入和刪除耗費資源

也是線性儲存的資料結構,但和陣列不同的是不連續的資料結構

鍊錶中的每乙個點稱為節點,每個節點都包含兩個部分

資料域:元素

隨機訪問差,占用空間大

插入和刪除效率好,只需要修改指標

單向鍊錶和雙向鍊錶(有三個區域,中間是資料域,前驅元素位址,後續元素位址)

受限的線性表:只能從棧頂新增、刪除元素

棧頂,棧底

先進後出。棧頂元素先出 lifo last in first out

應用場合:函式呼叫,異常的傳播和丟擲

受限的線性表:只能從隊頭刪除,從隊尾新增

先進先出。隊頭元素先出  fifo first in first out

雙端佇列:同時實現佇列和堆疊的特性

樹是由節點集和連線每對節點的有向邊集組成

根、父節點,子節點、葉子節點

二叉樹:任何乙個節點的孩子數不超過兩個,最多只有兩個子節點

滿二叉樹: 所有的節點都有兩個子節點(除葉子節點以外)

完全二叉樹:編號跟滿二叉樹一致

二叉樹的遍歷:(從上到下,從左到右)

先序:根,左,右

中序:左,根,右

後序:左,右,根

通過雜湊函式(對映關係),將無限的資料對映到有限的位址集

python字典使用的是雜湊儲存

以最壞時間複雜度為準

常用的時間複雜度

o(1)< o(logn)以空間換時間的方式。

1. 順序查詢:從頭到尾

2. 折半查詢:每次查詢中心點,通過判斷大小,來進行重新獲取start和end

注意:只適合排好序的列表

掌握倆倆元素比較,i  i+1  

外迴圈的界限:n-1

內迴圈的界限:n-1-i

時間複雜度:最好o(n)    o(n^2)

穩定:穩定

每次選擇最大或者最小元素,放到前面,排序

時間複雜:o(n^2)

穩定性:不穩定

從第二個元素開始,插入先有排好隊的隊伍中,保證每個元素插入之後還是有序的

時間複雜度:最好o(n)    o(n^2)

穩定性:穩定

插入排序的公升級,加入了增量,來分組

時間複雜度:不定

穩定性:不穩定

遞迴的執行查詢中心點,將比中心點小的元素放左側,比中心點大的放右側

時間複雜度o(nlogn)

穩定性:不穩定

分久必合合久必分:將兩個有序的資料集合合併成乙個有序的資料集

時間複雜度:o(logn)

穩定性:穩定

資料結構 總結

不知不覺間,跟隨賀老師的步伐已經乙個學期了。記得大一的時候,那個時候還沒有接觸到計算機專業的知識,那個時候便聽說了賀老師,那個時候對於老師厲害還沒有什麼概念,只是覺得可能是老師比較博學,比較深層次的了解一些計算機的內容,卻從未想過,這種厲害更加深入到了學生的腦海中,甚至可能會對乙個學生,一群學生,越...

資料結構總結

本文為總結了資料結構知識點,以便複習 本文為總結了資料結構知識點,以便複習 1.緒論 2.線性表 資料結構三要素 邏輯結構 儲存結構 物理結構 資料運算。其中邏輯結構包括線性結構 線性表 棧 佇列 和非線性結構 樹 圖 集合 儲存結構主要有 順序儲存 鏈式儲存 索引儲存 雜湊儲存 又稱hash儲存 ...

資料結構總結

一 棧 先進後出 1 定義 棧是一種操作受限制的線性表,即只能從某一端插入和刪除的特殊線性表。進行插入和刪除的一端稱為棧頂,另一端稱為棧底。插入稱為進棧,刪除稱為退棧。2 具體 實現 include includeusing namespace std define n 100 int s 101 ...