具有继承和多态性的二叉搜索树网络
Python
Hard
classes
任务 «具有继承和多态性的二叉搜索树网络»
实现二叉搜索树(BST)的节点类 Node,包含方法 insert、search、delete。创建 BST 类,该类存储根节点并包含方法 insert(添加值)、search(搜索值,返回 True/False)、delete(删除值)和 get_height(树的高度)。然后创建 AVLTree 类,继承自 BST,重写 insert 和 delete 方法以支持平衡(通过旋转)。输入数据:一系列命令。命令包括:"insert x" 添加 x,"delete x" 删除 x(如果存在),"search x" 输出 "found" 或 "not found","height" 输出树的高度。对于 AVLTree,每次插入/删除后检查平衡(子树高度差 <= 1)并执行相应的旋转。限制条件:-10^9 <= x <= 10^9,命令数量最多 10^5 条。
输入格式
第一行:一个整数 n(1 <= n <= 10^5)——命令的数量。接下来 n 行,每行包含一条命令:insert x、delete x、search x 或 height。
输出格式
对于每个 search 命令,在单独一行中输出 "found" 或 "not found"。对于 height 命令,输出一个整数——树的高度(空树的高度 = 0)。
示例
示例 1
输入
3
1 2 -3 4
-1 -2
5 0 3
输出
示例 2
输入
2
0 0 0
2 -2 2 -2
输出
main.py