陣列儲存方式的分析
優點:通過下標方式訪問元素,速度快。對於有序陣列,還可使用二分查詢提高檢索速度。 缺點:如果要檢索具體某個值,或者插入值(按一定順序)會整體移動,效率較低 [示意圖]
畫出操作示意圖:
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 但有乙個節點例外,該節點沒有根節點,此節點稱為根節點 專業術語 節點父節點子節點 子孫堂兄弟 深度 從根節點到最底...