每天一點算法-二叉樹 (Day8)

為更好的理解后面將要介紹的選擇排序的另一種排序算法——(其他文章可能介紹的比較專業但理解起來困難,本文章盡量簡潔易懂的表達關鍵知識點),所以我先來介紹數據結構中的二叉樹

是一種一對多的數據結構。又有很多子集,比如:二叉樹二叉搜索樹2-3樹紅黑樹等等。的特征:
1.沒有父結點的結點叫,一個數有且只有一個;
2.每個結點有0個或多個子結點;
3.一顆里也可擁有子樹,且子樹不能相交;

的示例:


圖中標紅的為上面這個樹的子樹:
其中一個子樹

每個結點擁有的子樹數量稱為該結點的,簡單的說結點子節點個數就是它的。例如上圖中D結點的度為30的結點成為葉節點,也就是沒有子結點的結點`。

葉節點`的名字很形象,就是樹枝里能長出小樹枝,小樹枝能長出葉子,但葉子不會長出樹枝,葉子是一個樹枝的末端。

二叉樹

二叉樹是一類特殊的二叉樹的特征:
1.每個結點最多有2個子結點的樹(就是不存在大于2的結點);
2.左右子樹有一定順序(比如升序或降序,如下圖中8的右子結點大于左子節點,結點27的子節點也是如此關系);

二叉樹

滿二叉樹

滿二叉樹是所有非葉結點的子結點個數都為2,看起來呈水平對稱。其特征為:
1.所有葉結點都在最后一層;
2.非葉結點的所有結點的度都為2;

滿二叉樹

完全二叉樹

完全二叉樹的特征:
1.該樹非最后一層結點都是滿的;
2.最后一層的葉結點必須集中到左邊,也就是不允許倒數第二層的結點只有右子結點沒左結點
從上面可以看出:

滿二叉樹一定是完全二叉樹,反過來就不一定是。

完全二叉樹的判斷

完全二叉樹是一種高效的數據結構,就是從程序實現層面上使完全二叉樹更加容易操作(如:增、刪)的數據結構。下一篇將介紹

感謝閱讀!歡迎關注!持續更新中...

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。