二叉樹的儲存
連續儲存【完全二叉樹】
優點:查詢某個節點的父節點和子節點(也包括沒有資料的節點)
缺點 耗用記憶體空間過大
鏈式儲存
一般樹的儲存
雙親表示法
求父節點方便
孩子表示法
求子節點方便
雙親孩子表示法
求父節點子節點都方便
二叉樹表示法
把乙個普通樹轉換成二叉樹來儲存
具體的轉換方法:
設法保證任意乙個節點的
左指標域指向它的第乙個孩子
右指標域指向它的下乙個兄弟
只要能滿足此條件就能把普通樹轉換成二叉樹
乙個普通樹轉換成二叉樹一定沒有右子樹
森林的儲存
先把森林轉換成二叉樹,再儲存二叉樹
操作
遍歷
先序遍歷
先訪問根節點
再先序訪問左子樹
再先序訪問右子樹
中序遍歷
中序遍歷左子樹
再訪問根節點
再中序遍歷右子樹
後續遍歷
後序遍歷左子樹
後續遍歷右子樹
再訪問根節點
已知兩種遍歷序列求原始二叉樹
只有通過 先序和中序 或者 中序和後序 才可以唯一確定乙個二叉樹
1.已知先序和中序求後續
示例:先序:abcdefgh
中序:bdceafhg
求後序:decbhgfa
示例:先序:abdghcefi
中序:gdhbaecif
2.已知中序和後序求先序(根據後序找根節點)
應用
樹是資料庫中資料組一種重要形式織
作業系統子父程序的關係本身就是一棵樹
物件導向語言的繼承關係本身就是乙個樹
赫夫曼樹
樹基礎知識
陣列儲存方式的分析 優點 通過下標方式訪問元素,速度快。對於有序陣列,還可使用二分查詢提高檢索速度。缺點 如果要檢索具體某個值,或者插入值 按一定順序 會整體移動,效率較低 示意圖 畫出操作示意圖 2.鏈式儲存方式的分析 優點 在一定程度上對陣列儲存方式有優化 比如 插入乙個數值節點,只需要將插入節...
樹的基礎知識
樹 樹定義專業定義 1 有且只有乙個稱為根的節點 2 有若干個互不相交的子樹,這些子樹本身也是一棵樹 通俗定義 1 樹是由節點和邊組成 2 每個節點只有乙個父節點但可以有多個子節點 3 但有乙個節點例外,該節點沒有根節點,此節點稱為根節點 專業術語 節點父節點子節點 子孫堂兄弟 深度 從根節點到最底...
樹的基礎知識總結
一 樹的定義 1.樹 tree 是n n 0 個結點的有限集。n 0時稱為空樹,在任何一棵非空樹中,有且僅有乙個根結點,當n 1時,其餘結點可分為m個互不相交的有限集,其中每乙個集合本身又是一棵樹,並稱為根的子樹。2 結點的分類 結點擁有的子樹個數稱為結點的度。度為0的結點稱為葉結點或終端結點。度不...