樹和二叉樹(2)

二叉樹的存儲結構

順序存儲

QQ圖片20200428202011.png

  • 因爲二叉樹比較靈活,順序表示會浪費大量的空間,所以通常不使用,除非是徹底二叉樹或滿二叉樹
鏈式表示

QQ圖片20200428202224.png
QQ圖片20200428202357.png

靜態鏈表

QQ圖片20200428202518.png

  • 以線性結構存儲,因此對於存儲空間的分配不是很靈活,若是實現已知長度的樹,要插入刪除數據就不能夠

二叉樹遍歷的遞歸算法

QQ圖片20200428202835.png

二叉樹遍歷應用

QQ圖片20200428203137.pngQQ圖片20200428203223.png
QQ圖片20200428203426.pngQQ圖片20200428203544.pngQQ圖片20200428203646.pngQQ圖片20200428203738.pngQQ圖片20200428203807.png

二叉樹遍歷的非遞歸算法

樹的存儲結構

順序表示

雙親表示

QQ圖片20200428204016.png
優勢:結構簡單,一個順序表就能存儲一棵樹
缺點:是靜態結構,不方便作節點的插入和刪除;有存儲空間浪費;因爲對樹的應用大都是從節點找子女,而雙親表示經常使用於從節點找雙親,而應用在從節點找子女比較麻煩,要全掃描一遍。算法

鏈式結構

多重鏈表(孩子表示法)
  • 與二叉鏈表類似,浪費空間會比較多QQ圖片20200428204616.png
孩子鏈表

QQ圖片20200428204825.png
從數據和關係兩部分考慮,先構造數組,存儲每個節點(數據部分);子女和父母的關係則用連式結構表示。即先用數組存儲全部節點,再每一個節點生成單鏈表存儲該節點的全部子女數組

樹的左子女右兄弟表示法(二叉鏈表表示)

若是把普通樹改形成很是熟悉的二叉樹形式,就能夠造成一一對應關係,就能夠用二叉樹存儲普通樹,又不丟失普通樹的信息
QQ圖片20200428205304.pngspa

相關文章
相關標籤/搜索