樹基礎知識

2021-10-25 10:17:33 字數 1274 閱讀 5128

陣列儲存方式的分析

優點:通過下標方式訪問元素,速度快。對於有序陣列,還可使用二分查詢提高檢索速度。 缺點:如果要檢索具體某個值,或者插入值(按一定順序)會整體移動,效率較低 [示意圖]

畫出操作示意圖:

2. 鏈式儲存方式的分析 優點:在一定程度上對陣列儲存方式有優化(比如:插入乙個數值節點,只需要將插入節點,鏈結到鍊錶中即可, 刪除效率也很好)。 缺點:在進行檢索時,效率仍然較低,比如(檢索某個值,需要從頭節點開始遍歷) 【示意圖】

操作示意圖:

3.樹儲存方式的分析 能提高資料儲存,讀取的效率, 比如利用 二叉排序樹(binarysorttree),既可以保證資料的檢索速度,同時也 可以保證資料的插入,刪除,修改的速度。

節點根節點

父節點子節點

葉子節點 (沒有子節點的節點)

節點的權(節點值)

路徑(從 root 節點找到該節點的路線)層子樹

樹的高度(最大層數)

森林 :多顆子樹構成森林

樹有很多種,每個節點最多只能有兩個子節點的一種形式稱為二叉樹。

二叉樹的子節點分為左節點和右節點

示意圖

如果該二叉樹的所有葉子節點都在最後一層,並且結點總數=2^n-1,n 為層數,則我們稱為滿二叉樹。

5.如果該二叉樹的所有葉子節點都在最後一層或者倒數第二層,而且最後一層的葉子節點在左邊連續,倒數第二層的葉子節點在右邊連續,我們稱為完全二叉樹

線段樹基礎知識

從簡單說起,線段樹其實可以理解成一種特殊的二叉樹。但是這種二叉樹較為平衡,和靜態二叉樹一樣,都是提前已經建立好的樹形結構。針對性強,所以效 率要高。這裡又想到了一句題外話 動態和靜態的差別。動態結構較為靈活,但是速度較慢 靜態結構節省記憶體,速度較快。圖一就是一棵長度範圍為 1 10 的線段樹。長度...

樹鏈基礎知識

在一棵樹上進行路徑的修改 求極值 求和 乍一看只要線段樹就能輕鬆解決,實際上,僅憑線段樹是不能搞定它的。我們需要用到一種貌似高階的複雜演算法 樹鏈剖分。樹鏈,就是樹上的路徑。剖分,就是把路徑分類為 重鏈和輕鏈。記siz v 表示以v為根的子樹的節點數,dep v 表示v的深度 根深度為1 top v...

樹的基礎知識

樹 樹定義專業定義 1 有且只有乙個稱為根的節點 2 有若干個互不相交的子樹,這些子樹本身也是一棵樹 通俗定義 1 樹是由節點和邊組成 2 每個節點只有乙個父節點但可以有多個子節點 3 但有乙個節點例外,該節點沒有根節點,此節點稱為根節點 專業術語 節點父節點子節點 子孫堂兄弟 深度 從根節點到最底...