1. 程式人生 > >常用的資料結構介紹

常用的資料結構介紹

1.棧

後進先出

2.佇列

先進先出

3.陣列與連結串列

陣列:順序儲存,隨機訪問
連結串列:連結串列儲存,順序訪問
相關文件參考:
https://blog.csdn.net/Yuyh131/article/details/83629642

4.串

???

5.樹

1)二叉樹
2)遍歷二叉樹:
前序(先中間,再左邊,後右邊)
中序(先左邊,再中間,後右邊)
後序(先左邊,再右邊,後中間)
3)線索二叉樹:用二插連結串列實現的二叉樹,將那些沒有使用的左右指標指向前驅和後繼(前驅和後繼就是遍歷後(例如用中序遍歷)的資料序列某一個數據的前面和後面的資料),形成的二叉樹為線索二叉樹。一般用在經常遍歷和利用前驅和後繼查詢結構的情況。
4)赫夫曼樹:用於壓縮
5)二叉排序樹:根節點的左子樹若不為空,則左子樹所有節點都小於根節點。根節點的右子樹若不為空,則右子樹所有節點都大於根結點。根節點的左右子樹不為空,則其都是二叉平衡樹。

6)平衡二叉樹:一顆左右子樹高度差至多等於1的二叉排序樹。
新增節點的時候,根據不平衡子樹左旋右,保證最後的樹是平衡的。
優點:查詢,插入,刪除時間複雜度都是:O(logn)

7)多路查詢樹:結點的孩子不止為兩個,結點存的值補位一個。如2-3樹,2-3-4樹,B樹,B+樹

8)紅黑樹:也是二叉排序樹。利用一個結點的屬性表明這個結點是紅是黑。查詢等同於二叉排序樹。插入和刪除利用這個顏色屬性來保證操作之後樹還是平衡的。所以查詢,插入和刪除的時間複雜度都是:O(logn)。統計效能比平衡二叉樹好

9)堆:二叉樹,分為大頂堆,小頂堆。大頂堆的要求是每個節點的值都不大於其父節點的值,小頂堆放過來。

6.圖

1)五種構造圖的方式
2)遍歷:
深度優先:一個勁的朝一個方向使勁,當重複了就返回
廣度優先:先從一個頂點觸發,拿到這個頂點,再把與這個頂點相關的頂點放入佇列,再從佇列取資料,再把與這個新取的頂點相關的頂點(非重複過的頂點)放入佇列,依次同理操作
3)最小生成樹:
普里姆(Prim)演算法:O(n2)
克魯斯卡爾(Kruskal)演算法:O(e*loge)
4)最短路徑:
迪傑斯特拉(Dijkstra)演算法O(n3)
弗洛伊德(Floyd)演算法O(n3)

5)拓撲排序:AOV網:用頂點表示活動,用弧表示優先關係的有向圖
拓撲排序演算法:O(n+e) n個頂點e條邊

6)關鍵路徑:AOE網:用頂點表示時間,用有向邊表示活動,用邊的權值表示持續的時間的有向圖
關鍵演算法路徑:O(n+e)

7.查詢

1)順序表查詢:從第一個開始順序查詢
2)有序表查詢:
折半查詢,
插值查詢:對於均勻分佈的資料,用差值查詢方便
斐波那契查詢

3)線性索引查詢:
稠密索引(每個記錄有關鍵碼,對關鍵碼排序形成的表),
倒排索引(次關鍵碼,記錄號表),
分塊索引(將記錄分成多少塊,塊間有序,塊內無序,上一個塊的最大關鍵碼小於下一個塊的所有關鍵碼)

4)散列表(Hash表)查詢
處理衝突:
a.開放定址法:一個地址已被入住,再找下一個空的地址
再雜湊:用多個雜湊函式,一個函式查詢重複,再用另一個
鏈地址法:衝突了,在這個位置用連結串列連起來
公共溢位方法:用另一個hash表儲存衝突的資料

8.排序(從小到大):

冒泡:從最後一個數據開始,讓最小一個數據冒泡到第一個位置。然後第二小冒泡到第二位置。O(n2)

選擇:從n-i-1個數據中選擇最小的,找到後將其與i位置調換,重複此操作。O(n2)

插入:先用第一個資料放到給定位置,然後取出第二個資料,與已排序好的資料比較,插入到此有序序列的對應位置。O(n2)

希爾:以某個增量i為基準,先依次將k與k+i位置比較決定是否交換,然後k++。得到一個基本有序的序列,然後減小i,再進行k與k+i位置比較決定是否交換,然後k++。操作完繼續i減少,直到i<=1,並操作一遍後結束。得到的序列就是有序的。O(n3/2)

堆:將序列構成一個堆,然後取走堆頂,讓剩下的資料再構成一個堆,再依次重複操作取走。O(n*logn)

歸併:n個數據分成n個表,肯定每個表有序,然後兩兩合併成n/2個有序表,再兩兩合併成有序,重複操作,直到只有一個表。O(n*logn)

快速:先通過一頓操作,將序列變成前面一部分記錄都比後一部分記錄小,然後分別對這兩部分記錄同理操作,最後,最小的一部分只有兩個數(也有是一個數的,那肯定有序),小的在前面肯定有序,最後,就得知整個序列是有序的。O(n*logn)

8.時間複雜度logn的出現一般是將整體分成各個子部分,然後子部分沒成功,將子部分再分成子部分。複雜度一般出現在遞迴中或迴圈巢狀中

相關文件

https://blog.csdn.net/BigWatermelon11/article/details/76914386