Binary Tree tutorials
介紹
二元樹是一種樹的資料結構,其中每個節點最多具有兩個子節點,分別稱為左節點和右節點。
完整代碼:
結構
所以我們必須先建造一個結構包含父節點與左右兩個子結點。
1 | struct Node{ |
創建一個新節點
生成一個新的節點並設定它的父節點為key。
1 | Node* createNode(int key){ |
搜索節點(BFS)
將節點放入queue後檢查左節點與右節點使否為空,如果不為空就將他放繼續放入queue中直到找到索引為止。
舉例:
1 | 1 |
q: 1
檢查1左節點是否為NULL,放入
q: 2
檢查1右節點是否為NULL,放入
q: 2 3
檢查2左節點是否為NULL,放入
q: 3 4
檢查2右節點是否為NULL,放入
q: 3 4 5
檢查3左節點是否為NULL,不放入
q: 4 5
檢查3右節點是否為NULL,不放入
q: 4 5
.
.
.
檢查5右節點是否為NULL,不放入
q: 5
1 | Node* search(Node* root, int key){ |
插入
先創建一個新的節點,在利用剛剛寫好的查詢功能搜尋父節點,接著插入空的子節點位置完成新增。
1 | void insert(Node *root, int parent, int key){ |