二叉查找树(ADT)是一个具有对于树种的某个节点X,它的左节点都比X小,它的右节点都比X大的二叉树。如下就是一个符合
要求的二叉查找树:
增加节点1.定义节点类:
2.插入元素
我们采用递归的方法:
1.判断与根节点是否相同,相同无需操作
2.比根元素小往左边查找,左节点不存在的话则作为左节点插入即可
3.比根元素大往右边查找,右节点不存在的话则作为右节点插入即可
代码实现如下:
查询节点我们采用递归的方法:
1.判断与根节点是否相同,相同则返回true
2.比根元素小往左边查找,左节点为null则返回false表示不存在
3.比根元素大往右边查找,右节点为null则返回false表示不存在
代码实现如下:
删除节点删除元素时要判断元素的情况:
1.删除的元素没有叶子节点,直接删除,如删除值为1的节点,虽然平衡性不是太好,但是还是符合二叉查找树的特性
2.删除的元素只有一个节点,删除元素并将指针指向其子节点 ,如删除值为4的节点:
3.删除的元素有左右两个节点,从右节点中找出大于该节点的最小节点,作为新的节点A,如删除节点值为2的节点:
代码实现如下:
到此这篇关于Java实现二叉查找树的增删查详解的文章就介绍到这了,更多相关Java二叉查找树增删查内容请搜索七叶笔记以前的文章或继续浏览下面的相关文章希望大家以后多多支持七叶笔记!