问题描述
编写算法实现对依次输入的关键字序列建立二叉排序树,并能实现二叉排序树的查找、插入和删除运算。
需求分析
- 建立二叉树
- 查找关键字
- 插入关键字
- 删除关键字
- 查看树
算法思想
创建二叉排序树的第一步就是将二叉排序树初始化为空树,然后读入关键字,执行插入操作,直到输入的关键字是结束标志为止;插入操作为当二叉排序树为空时,将待插入节点作为根结点插入到空树中,若树非空,则将输入的key值与根结点的关键字进行比较,key小于T->data.key,则将key插入左子树,key大于T->data.key,则将key插入到右子树;查找操作为若二叉排序树为空,则查找失败,返回空指针,若非空,则令key值与根结点的关键字比较,相等则查找成功,小于T->data.key则递归查找左子树,大于T->data.key则递归查找右子树;删除操作因为被删除的结点可能是二叉排序树中的任何结点,删除结点后,要根据其位置不同修改其双亲结点及相关结点的指针。查看树操作采用中序遍历。