1.二叉树新节点的插入:create(root,val)
class node:
def __init__(self):
self.data = 0
self.left = None
self.right = None
def create(root, val):
newnode = node()
newnode.data = val
newnode.left = None
newnode.right = None
if root == None:
root = newnode
return root
current = root
while current != None:
parent = current
if val < current.data:
current = current.left
else:
current = current.right
if parent.data > val:
parent.left = newnode
else:
parent.right = newnode
return root
data = [1, 7, 3, 4, 5, 2, 9, 11, 13, 15, 12]
root = None
for i in range(len(data)):
root = create(root, data[i])
2.二叉树的删除
1)删除点为叶子节点,与之相连的父节点指向None
2)删除节点下只有1棵树:之间上提替换节点
3)有两棵树:1,中序遍历,左树最大者上提;2右树最小者上提。