不同於佇列、棧等一對一的資料結構,樹是一對多的資料結構。樹(tree)是n(n>=0)各節點的有限集。當n=0,為空樹。在任意一顆非空樹中:有且只有乙個特定的結點稱為:根(root)
當n>1時,其餘結點可分為m(m>0)個互不相交的有限集t1、t2、...tm。其中每乙個樹本身又是一棵樹,並且稱為:子樹。
兩點注意:
n>0時候,根節點唯一。
m>0時候,子樹個數雖然沒有限制。但是他們不會相交(不會形成類似環狀的形狀)
結點:
度:結點擁有的子樹個數稱之為結點的度。整棵樹的度:各結點度的值的最大值。度為0的結點稱為:葉節點或者終端結點
度不為0的結點稱為:分支結點
度不為0且不是根節點的結點稱為:內部結點。
(附截圖)
結點關係
child:結點子樹的根;parent:相應的,該結點就是parent
sibling(兄弟):統一parent的child之間的關係
祖先結點:從根到該結點所經過的分支上的所有結點。
深度或高度:
樹中結點的最大層次稱為輸的深度或高度。下面截圖就是高度和度均為3的一棵樹:
有序樹和無序樹:
如果將樹中結點的各子樹看成從左到右有次序的,不能互換的,就是有序樹;否則就是無序樹。
森林:
是m>0棵互不相交的樹的結合。對樹中每個結點,其子樹的集合就是森立。
特點:二叉樹的度<=2。
二叉樹是有序樹。
截圖
左斜樹:所有結點都只有左子樹的二叉樹;
右斜樹:所有結點都只有右子樹的二叉樹;截圖
所有分支結點的度為2;
所有葉子結點只能分布在最下層上;
同樣深度的二叉樹中,滿二叉樹的結點數最多,葉子結點數最多;
所有葉子結點只能出現在最下兩層
若結點度為1,則該結點只有左子樹,不存在只有右子樹的情況
結點分配 先左後右
通過截圖1和截圖2看一下滿二叉樹和完全二叉樹的區別:
csdn位址 :
也可以致信進行交流 : [email protected]
有三種遍歷方式。命名的根據是按照根節點被遍歷的順序。前序、中序 || 後序、中序 可以確定乙個二叉樹。但是前序+後序不可以確定一顆二叉樹。前序:先訪問根結點 -> 遍歷左子樹 -> 遍歷右子樹;先訪問根結點
中序:遍歷左子樹 -> 訪問根結點 -> 遍歷右子樹;中間訪問根結點
後序:遍歷左子樹 -> 遍歷右子樹 -> 後訪問根結點;後訪問根結點
層序:自上而下,從左到右逐層訪問結點;
下面截圖展現了4中遍歷方式。
#include#includeusing namespace std;
typedef char elemtype;
struct bintree;
//按照前序遍歷建立二叉樹。注意輸入的順序也必須得是前序遍歷的順序。
void createbintree(bintree *&t)
else
t = null;//空格代表是空子樹
}//遞迴查詢二叉樹的深度
int bintreedepth(bintree *t)
} //按照前序遍歷二叉樹
//中序和後序只需要改變if(t)條件中語句順序
void preorderbintree(bintree *t,int level)
}//清空二叉樹。注意if中自呼叫和delete語句的順序
void clearbintree(bintree *&t)
}//查詢含有對應資料的結點。返回值是結點的指標
bintree* findnode(bintree *t ,elemtype data)
} //輸入為(注意空格):ab d ce
int main(){
int level = 1;
bintree *t = null;
createbintree(t) ;
preorderbintree(t,level);
cout<
二叉樹 滿二叉樹和完全二叉樹
二叉樹是一種很重要的非線性資料結構,它是樹結構的一種重要的型別 它不是樹結構的特殊情況 其特徵是每個節點最多有兩個子樹。二叉樹的特點 二叉樹每個結點最多有 2個子結點,樹則無此限制 二叉樹中 結點的子樹 分成左子樹和右子樹,即使某結點只有一棵子樹,也要指明該子樹是左子樹,還是右子樹,就是說 二叉樹是...
樹 二叉樹 滿二叉樹 完全二叉樹 完滿二叉樹
目錄名稱作用根 樹的頂端結點 孩子當遠離根 root 的時候,直接連線到另外乙個結點的結點被稱之為孩子 child 雙親相應地,另外乙個結點稱為孩子 child 的雙親 parent 兄弟具有同乙個雙親 parent 的孩子 child 之間互稱為兄弟 sibling 祖先結點的祖先 ancesto...
二叉樹和完全二叉樹
二叉樹規律 假設根節點的高度為0 二叉樹是每個節點至多只有兩個節點的樹 深度為i所在的層至多有 2 i個節點 高度為k的二叉樹至多有2 k 1 1個節點 n0表示度為0的節點,n2表示度為2的節點,存在n0 n2 1 對所有樹有 節點個數 邊數 1 完全二叉樹規律 節點數為n的完全二叉樹,其高度為 ...