數據結構與算法思想

數組與矩陣

數組

在這裏插入圖片描述

稀疏矩陣

  • 記公式

在這裏插入圖片描述

  • 面對考試使用代入法,將矩陣中的數值代入選項的公式中,排除掉錯誤答案
  • 例如:A0.0應該存儲在數組的M[1]中,所以將i=0,j=0代入,應該得到M[1],以此類推,再代入其他值。

在這裏插入圖片描述

線性表

在這裏插入圖片描述

順序表

  • 採取一維數組的方式存取信息,開闢一堆連續的空間

鏈表

  • 將一堆離散的空間連起來,這就是每個節點中指針域的作用。存儲的是下一個元素的內存地址。

在這裏插入圖片描述

順序存儲與鏈式存儲對比

在這裏插入圖片描述

隊列

  • 循環隊列 由於隊空隊滿的條件都一樣,容易造成混淆,所以想出來一個辦法,循環隊列少存一個元素,就是尾指針指向的是頭指針。

在這裏插入圖片描述

  • 後進先出
  • 注意棧空棧滿的條件

廣義表

  • 求廣義表的長度和深度

在這裏插入圖片描述

樹與二叉樹

在這裏插入圖片描述

樹的遍歷

在這裏插入圖片描述

反向構造二叉樹

在這裏插入圖片描述

樹轉二叉樹

在這裏插入圖片描述

查找二叉樹(排序二叉樹)

在這裏插入圖片描述

最優二叉樹(哈弗曼樹)

  • 常用於編碼,無損壓縮
  • 帶權路徑長度wpl=葉結點的值 x(此節點到根節點的距離)
  • wpl最小的時候,就是最優二叉樹
  • 如何構造哈弗曼樹

在這裏插入圖片描述

線索二叉樹

  • 由於在二叉樹中有很多結點屬於空閒狀態,有很多指針沒有利用起來,
  • 左子樹的指針指向(前/中/後)序遍歷的前驅結點
  • 右子樹的指針指向(前/中/後)序遍歷的後驅結點

在這裏插入圖片描述

平衡二叉樹

  • 在之前的排序二叉樹中發現,同樣的序列,排序二叉樹可能有多顆,形態不一樣,這也是提出平衡二叉樹的原因,一顆二叉樹越平衡,他的查找效率越高

在這裏插入圖片描述

圖的概念

在這裏插入圖片描述

圖的存儲–鄰接矩陣

在這裏插入圖片描述

圖的存儲–鄰接表

在這裏插入圖片描述

圖的遍歷

在這裏插入圖片描述

拓補排序

  • 實質是用一個序列來表達一個圖當中,哪些事件可以先執行,哪些事件可以後執行。
    拓補排序可能產生多個序列,考試中常遇到哪些說明下面哪些不是拓補排序的序列。
    在這裏插入圖片描述

圖的最小生成樹

  • 將圖中,很多的線,邊,去掉,只留下若干條邊,然後連起來
  • 普里姆算法 從一個紅點出發,選擇他可以達到的權最小的那一個點,將那個點也歸爲紅點,一步一步擴展,需要注意的是,不能形成一個環。

在這裏插入圖片描述

  • 克魯斯卡爾算法
    看需要選幾條邊,比如說五條邊,那麼就從權值最小的中選區這些邊,達到五條,就不再選了,將這五條變連接起來,也要注意的是,不能構成一個環。

在這裏插入圖片描述

算法的特性

在這裏插入圖片描述

時空複雜度

散列表

在這裏插入圖片描述

排序算法

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章