一、二叉樹
1、二叉樹的概念
2、性質
(1)若二叉樹的層次從0開始,則在二叉樹的第i層至多有2^i個結點(i>=0);
(2)高度為k的二叉樹最多有2^(k+1) - 1個結點(k>=-1)。 (空樹的高度為-1);
(3)對任何一棵二叉樹,如果其葉子結點(度為0)數為m, 度為2的結點數為n, 則m = n + 1。
二、幾種特殊的二叉樹
1、滿二叉樹
所有葉結點同處於最底層(非底層結點均是內部結點),乙個深度為k(>=-1)且有2^(k+1) - 1個結點。如圖(圖**於veil的部落格):
2、完全二叉樹
葉結點只能出現在最底層的兩層,且最底層葉結點均處於次底層葉結點的左側。規模為n的完全二叉樹,高度為
3、平衡二叉樹
對於平衡二叉樹要特別注意的是,不要求非葉節點都有兩個子結點,僅要求兩個子樹的高度差的絕對值不超過1,或者為空樹。
三、儲存方式
儲存的方式和圖一樣,有鍊錶和陣列兩種,用陣列存訪問速度快,但插入、刪除節點操作就比較費時了。實際中更多的是用鏈來表示二叉樹的。
資料結構和演算法 二叉樹
二叉樹 樹的每個節點最多只能有兩個子節點。樹的效率 查詢節點的時間取決於這個節點所在的層數,每一層最多有2n 1個節點,總共n層共有2n 1個節點,那麼時間複雜度為o logn 底數為2。二叉搜尋樹要求 若它的左子樹不空,則左子樹上所有結點的值均小於它的根結點的值 若它的右子樹不空,則右子樹上所有結...
資料結構演算法 二叉樹
二叉樹資料結構 bintree.h include templateclass bintree template class treenode type data treenode lchild 左,右子樹 treenode rchild template class bintree void cr...
資料結構 樹和二叉樹
第一節 二叉樹的定義與基本操作 定義 我們把滿足以下兩個條件的樹型結構叫做二叉樹 binary tree 1 每個結點的度都不大於2 2 每個結點的孩子結點次序不能任意顛倒。由定義得出 二叉樹的每個結點只能含有0 1或2個孩子,且有左右之分。1 二叉樹的五種基本形態 2 二叉樹性質 性質1 二叉樹第...