1. 程式人生 > >深入理解二叉樹(超詳細)

深入理解二叉樹(超詳細)

[TOC] # **二叉樹(Binary Tree)** ## 回顧 在前面的文章 — [二叉樹前奏](https://juejin.im/post/6872263119758950407)中,我們對於二叉樹的一些基本概念進行了回顧,同時對比了線性結構與樹形結構,總結了一些常見的二叉樹的性質,像二叉樹,真二叉樹,完全二叉樹,以及滿二叉樹等等,但是,我們僅僅是在概念上對於二叉樹有所瞭解,並沒有進行編碼工作,今天來完善一下這一步的操作 直接進入二叉樹的設計與編碼,如果你對於二叉樹的概念以及性質不瞭解的話,可以回去翻翻 [二叉樹前奏](https://juejin.im/post/6872263119758950407),熟悉一下,因為編碼實際上就是對於二叉樹性質的一個體現 ## 設計 ### **屬性與節點** 首先,我們的二叉樹是用來存放元素的,同時它還需要知道自己的父節點與子節點的關係,那麼,很容易想到的是使用節點類,那麼二叉樹的節點類該如如設計呢,同時我的二叉樹類該有哪些基本元素呢? 首先,我們需要知道二叉樹的節點數量,同時,對於樹而言,要有根,我們需要根節點,那麼可以確定的是有: ```java //樹節點的數量 protected int size; //樹的根結點 protec