数据结构——二叉树(2)
1.二叉搜索树
性质:非空左子树的结点键值小于根结点的键值;非空右子树的结点键值大于根结点的键值;左右子树都是二叉搜索树。
查找方法:1.查找从根结点开始:若树为空,返回Null;
若非空,则变量X与根结点比较,小于根结点键值,则在左子树继续搜索;大于根结点键值,则在右子树继续搜索;等于则搜索完成。返回指向此结点的指针。
查找最值元素:最大元素一定是在最右分支的端节点上;最小元素一定是在最左分支的端节点上。
二叉搜索树的插入:key:找到元素插入的位置
二叉搜索树的删除:三种情况
1.删除叶节点,直接删除,修改父节点指针
2.删除只有一个子树的结点:父结点指针指向删除结点的子结点
3.要删除结点有左右两颗子树:用右子树的最小结点或左子树最大结点代替删除的结点。
2.树的同构
给定两棵树T1 和T2 。如果T1 可以通过若干次左右孩子互换就变成T2 ,则我们称两棵树是“同构”的。