# 動態二元樹的節點
class Node:
    Node *parent
    Node *left
    Node *right
    key

# 動態二元樹
class BinaryTree: 
    Node *root

    insert(data):
        Node *x ← root   # 從根節點開始進行搜尋
        Node *y ← NULL   # x 的父節點

        # 決定新節點的父節點
        while x ≠ NULL:
            y ← x # 設定父節點
            if data < x.key:
                x ← x.left    # 往左子節點移動
            else:
                x ← x.right   # 往右子節點移動

        # 生成節點並設定指標
        Node *z ← 生成節點
        z.key ← data
        z.left ← NULL
        z.right ← NULL
        z.parent ← y

        if y = NULL: # 若 tree 為空樹
            root ← z
        else if z.key < y.key:
            y.left ← z  # 使 z 成為 y 的左子節點
        else:
            y.right ← z # 使 z 成為 y 的右子節點

    inorder(Node *u):
        if u = NULL: return
        inorder(u.left)
        輸出 u.key
        inorder(u.right)