# AVL **Repository Path**: chesian/AVL ## Basic Information - **Project Name**: AVL - **Description**: 平衡二叉树操作的演示(C#) - **Primary Language**: C# - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2017-02-11 - **Last Updated**: 2020-12-18 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README 平衡二叉树操作的演示(C#) [问题描述] 利用平衡二叉树实现一个动态查找表。 [基本要求] 实现动态查找表的三种基本功能:查找、插入和删除。 [测试数据] 由读者自行设定。 [实现提示] (1) 初始,平衡二叉树为空树,操作界面给出查找、插入和删除三种操作供选择。每种操作均要提示输入关键字。每次插入或删除一个结点后,应更新平衡二叉树的显示。 (2) 平衡二叉树的显示可采用如6.3题要求的凹入表形式,也可以采用图形界面画出树形。 (3) 教科书已给出查找和插入算法,本题重点在于对删除算法的设计和实现。假设要删除关键字为x的结点。如果x不在叶子结点上,则用它左子树中的最大值或右子树中的最小值取代x。如此反复取代,直到删除动作传递到某个叶子结点。删除叶子结点时,若需要进行平衡变换,可采用插入的平衡变换的反变换(如,左子树变矮对应于右子树长高)。 [选做内容] (1) 合并两棵平衡二叉树。 (2) 把一棵平衡二叉树分裂为两棵平衡二叉树,使得在一棵树中的所有关键字都小于或等于x,另一棵树中的任一关键字都大于x。 实验报告在项目的根路径的 doc 文件夹下