删除二叉树的根节点
删除二叉排序树的根节点p有三种情况:
1)被删除节点p同时有左子树与右子树。处理方式是将p的前驱节点s的值保存在p结点,继而删除前驱节点s。
2)被删除节点p只有左子树或只有右子树。处理方式是直接用p的子树p->l或p->替换被删节点p。
3)被删除节点p没有子树。处理方式是直接删除节点p。
(验证时间约 7sec)
[Back to Index]
验证特点:二叉树,内置谓词 \tree、\dangling,逻辑变量
标注说明:函数前条件:描述函数参数是一棵二叉树且不为空;逻辑指针变量记录函数入口处被删除的节点;
函数后条件:描述函数的返回值是一棵树,且实际删除的是根节点,或非根节点(根节点的前驱节点)。