# 动态二叉树的节点
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: # 树为空的情况
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)