广工数据结构课程设计——平衡二叉树操作的演示
内含源代码、可执行程序以及相应的说明文档
实验的功能包括:
[实现提示]
(1) 初始,平衡二叉树为空树,操作界面给出查找、插入和删除三种操作供选择。每种操作均要提示输入关键字。每次插入或删除一个结点后,应更新平衡二叉树的显示。
(2) 平衡二叉树的显示可采用如6.3题要求的凹入表形式,也可以采用图形界面画出树形。
(3) 教科书已给出查找和插入算法,本题重点在于对删除算法的设计和实现。假设要删除关键字为x的结点。如果x不在叶子结点上,则用它左子树中的最大值或右子树中的最小值取代x。如此反复取代,直到删除动作传递到某个叶子结点。删除叶子结点时,若需要进行平衡变换,可采用插入的平衡变换的反变换(如,左子树变矮对应于右子树长高)。
[选做内容]
(1) 合并两棵平衡二叉树。
(2) 把一棵平衡二叉树分裂为两棵平衡二叉树,使得在一棵树中的所有关键字都小于或等于x,另一棵树中的任一关键字都大于x。