首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

2012/4/9-二叉查找树(二叉排序树)的各种操作

2012-08-21 
2012/4/9----二叉查找树(二叉排序树)的各种操作不知不觉都快5天没更新内容了,倒不是自己坚持不下来。一方面

2012/4/9----二叉查找树(二叉排序树)的各种操作

不知不觉都快5天没更新内容了,倒不是自己坚持不下来。一方面是因为二叉树这一块难度也比开始增大了,所以学习进度也就相对来说慢了一点。但更重要的是在学算法的同时也还有其他东西需要学习,在算法上面不能花太多时间。

今天写的是和二叉查找树相关的java代码,包括了二叉查找树的创建,中序遍历,查询(分为递归和非递归两种),查找最小节点,查找最大节点,插入节点,删除节点,查找节点的前驱,查找节点的后继,查找节点的父亲节点。差不多有10种操作吧。

在贴代码之前,先介绍一下什么是二叉查找树(来自百度百科):

二叉排序树(Binary Sort Tree)又称二叉查找树。 它或者是一棵空树;或者是具有下列性质的二叉树: (1)若左子树不空,则左子树上所有结点的值均小于它的根结点的值; (2)若右子树不空,则右子树上所有结点的值均大于它的根结点的值; (3)左、右子树也分别为二叉排序树;

至于具体的操作我就不说了,在我代码里面都有详细的注释说明,运行结果我也会贴出来。

ps:代码比较多,如果发现问题还望留言指正。

?

打印出数组A中的元素23,12,43,2,87,54,中序遍历构造的二叉查找树:2,12,23,43,54,87,递归算法--查找节点域:23左孩子:12右孩子:查找节点域:43非递归算法--查找节点域:23左孩子:12右孩子:查找节点域:43最小节点:2最大节点:87插入l节点(l的data为17)之后的二叉查找树的中序遍历结果:2,12,17,23,43,54,87,q的父亲节点(q的data为12):23左孩子:12右孩子:查找节点域:43删除l节点(l的data为17)之后的二叉查找树的中序遍历结果:2,12,23,43,54,87,K的后继节点(k的data为23):43K的前驱节点(k的data为23):12

热点排行