# 二子樹 (Binary Tree)

## 定義
二子樹是一種樹狀數據結構，其中每個節點最多有兩個子節點，分別稱為左子節點和右子節點。二子樹的每個節點包含三個部分：數據、左子節點的引用和右子節點的引用。

## 性質
1. 每個節點最多有兩個子節點。
2. 左子節點的值小於父節點的值，右子節點的值大於父節點的值。
3. 二子樹的高度是從根節點到最遠葉子節點的最長路徑上的節點數。

## 範例
以下是一些簡單的二子樹範例：

範例1：
```
    5
   / \
  3   7
 / \ / \
2  4 6  8
```

範例2：
```
    10
   /  \
  5    15
 / \   / \
3   7 12  18
```

範例3：
```
    20
   /  \
  10   30
 / \   / \
5  15 25  35
```

範例4：
```
    8
   / \
  4   12
 / \  / \
2  6 10  14
```

範例5：
```
    25
   /  \
  20   30
 / \   / \
15 22 28  35
```

在這些範例中，每個節點的左子節點的值都小於父節點的值，右子節點的值都大於父節點的值。

## 應用
二子樹在計算機科學中有許多應用，包括：
1. 搜索樹：二子樹可以用來實現高效的搜索操作。
2. 排序：二子樹可以用來實現高效的排序算法，如快速排序和合併排序。
3. 優先級隊列：二子樹可以用來實現優先級隊列，其中每個節點的優先級由其值決定。

## 重要性
二子樹在計算機科學中具有重要地位，因為它們提供了一種高效的數據結構來存儲和操作數據。通過使用二子樹，可以實現高效的搜索、插入和刪除操作，這對於許多應用程序來說是至關重要的。

## 參考資料
- [Binary Tree - Wikipedia](https://zh.wikipedia.org/wiki/%E4%BA%8C%E5%AD%90%E6%A0%91)
- [Binary Tree - GeeksforGeeks](https://www.geeksforgeeks.org/binary-tree-data-structure/)
