文章目錄
數組與矩陣
數組
稀疏矩陣
記公式
- 面對考試使用代入法,將矩陣中的數值代入選項的公式中,排除掉錯誤答案
- 例如:
A0.0
應該存儲在數組的M[1]
中,所以將i=0,j=0
代入,應該得到M[1]
,以此類推,再代入其他值。
線性表
順序表
- 採取
一維數組
的方式存取信息,開闢一堆連續的空間
鏈表
- 將一堆離散的空間連起來,這就是每個節點中指針域的作用。存儲的是下一個元素的內存地址。
順序存儲與鏈式存儲對比
隊列
- 循環隊列 由於隊空隊滿的條件都一樣,容易造成混淆,所以想出來一個辦法,循環隊列少存一個元素,就是尾指針指向的是頭指針。
棧
- 後進先出
- 注意棧空棧滿的條件
廣義表
- 求廣義表的長度和深度
樹與二叉樹
樹的遍歷
反向構造二叉樹
樹轉二叉樹
查找二叉樹(排序二叉樹)
最優二叉樹(哈弗曼樹)
- 常用於編碼,無損壓縮
- 帶權路徑長度wpl=葉結點的值 x(此節點到根節點的距離)
- wpl最小的時候,就是最優二叉樹
- 如何構造哈弗曼樹
線索二叉樹
- 由於在二叉樹中有很多結點屬於空閒狀態,有很多指針沒有利用起來,
- 左子樹的指針指向(前/中/後)序遍歷的前驅結點
- 右子樹的指針指向(前/中/後)序遍歷的後驅結點
平衡二叉樹
- 在之前的排序二叉樹中發現,同樣的序列,排序二叉樹可能有多顆,形態不一樣,這也是提出平衡二叉樹的原因,一顆二叉樹越平衡,他的查找效率越高
圖
圖的概念
圖的存儲–鄰接矩陣
圖的存儲–鄰接表
圖的遍歷
拓補排序
- 實質是用一個序列來表達一個圖當中,哪些事件可以先執行,哪些事件可以後執行。
拓補排序可能產生多個序列,考試中常遇到哪些說明下面哪些不是拓補排序的序列。
圖的最小生成樹
- 將圖中,很多的線,邊,去掉,只留下若干條邊,然後連起來
- 普里姆算法 從一個紅點出發,選擇他可以達到的權最小的那一個點,將那個點也歸爲紅點,一步一步擴展,需要注意的是,不能形成一個環。
- 克魯斯卡爾算法
看需要選幾條邊,比如說五條邊,那麼就從權值最小的中選區這些邊,達到五條,就不再選了,將這五條變連接起來,也要注意的是,不能構成一個環。
算法的特性
時空複雜度
散列表
排序算法
- 各種排序算法:十大排序算法