c++ - (C++)关于 AVL-Tree 的 Romove(x) 函数有什么问题?当我测试它时它引起了一些中断
问题描述
我创建了一个包含25 个随机整数的AVL-Tree,我希望以原始顺序删除每个整数。所以每次我删除一个数字时,我都会使用 InOrderTraverse。但它会导致一些中断,我发现InOrderTraverse的列表并没有一一减少,它有一些像这样的裂缝(见删除 143 和 564):
Create AVL-Tree:
279 302 225 801 299 416 72 91 738 150 629 265 343 456 63 347 143 564 908 930 616 715 169 36 67
InOrderTraverse:
36 63 67 72 91 143 150 169 225 265 279 299 302 343 347 416 456 564 616 629 715 738 801 908 930
Remove:
delete:279 Traverse: 36 63 67 72 91 143 150 169 225 265 299 302 343 347 416 456 564 616 629 715 738 801 908 930
delete:302 Traverse: 36 63 67 72 91 143 150 169 225 265 299 343 347 416 456 564 616 629 715 738 801 908 930
delete:225 Traverse: 36 63 67 72 91 143 150 169 265 299 343 347 416 456 564 616 629 715 738 801 908 930
delete:801 Traverse: 36 63 67 72 91 143 150 169 265 299 343 347 416 456 564 616 629 715 738 908 930
delete:299 Traverse: 36 63 67 72 91 143 150 169 265 343 347 416 456 564 616 629 715 738 908 930
delete:416 Traverse: 36 63 67 72 91 143 150 169 265 343 347 456 564 616 629 715 738 908 930
delete:72 Traverse: 36 63 67 91 143 150 169 265 343 347 456 564 616 629 715 738 908 930
delete:91 Traverse: 36 63 67 143 150 169 265 343 347 456 564 616 629 715 738 908 930
delete:738 Traverse: 36 63 67 143 150 169 265 343 347 456 564 616 629 715 908 930
delete:150 Traverse: 36 63 67 143 169 265 343 347 456 564 616 629 715 908 930
delete:629 Traverse: 36 63 67 143 169 265 343 347 456 564 616 715 908 930
delete:265 Traverse: 36 63 67 143 169 343 347 456 564 616 715 908 930
delete:343 Traverse: 36 63 67 143 169 347 456 564 616 715 908 930
delete:456 Traverse: 36 63 67 143 169 347 564 616 715 908 930
delete:63 Traverse: 36 67 143 169 347 564 616 715 908 930
delete:347 Traverse: 36 67 143 169 564 616 715 908 930
delete:143 Traverse: 36 67 169 564 616 715 908 930
delete:564 Traverse: 36 67 169 616 715
delete:908 Traverse: 36 67 169 616 715
delete:930 Traverse: 36 67 169 616 715
delete:616 Traverse: 36 67 169 715
delete:715 Traverse: 36 67 169
delete:169 Traverse: 36 67
delete:36 Traverse:
我查了我的教科书并在网上搜索过,但仍然没有解决。
我希望你能帮助我。非常感谢!以下是完整代码:https ://paste.ubuntu.com/p/SD3pDnYNJY/
解决方案
推荐阅读
- c# - 后台服务中的 Task.Run 意外停止工作
- flutter - Firebase数据不会在flutter中没有热重载的情况下加载
- c++ - 我们可以在菱形继承模式中只使用一种虚拟继承吗?
- php - 如何在 Laravel 7.x 中从控制器返回视图时传递 cookie?
- swift - 时间来错了,但日期很快就正确了
- javascript - 更改 NavLink 文本颜色 onClick
- azure - 与美国西部的服务总线通信时,英国南部的 Azure 功能超时
- java - 无法执行休眠查询语句?
- html - 之间的关系
和 HTML5 中的标签
- python - 为什么我只需要从模块导入子类而不从另一个实例导入它的基类和它的属性?