二叉排序树中查找元素的递归和非递归写法
来源:互联网 发布:安卓中控源码 编辑:程序博客网 时间:2024/05/12 21:29
上一篇介绍了二分查找的递归和非递归写法,这一篇文章主要记录二叉排序树中查找元素的递归和非递归写法。二叉排序树又称为二叉查找树,也称为二叉搜索树。
二叉排序树或者是一棵空树,或者是具有下列性质的二叉树:
(1)若左子树不空,则左子树上所有结点的值均小于它的根结点的值;
(2)若右子树不空,则右子树上所有结点的值均大于它的根结点的值;
(3)左、右子树也分别为二叉排序树;
(4)没有键值相等的结点。
由此可知,如果对二叉排序树进行中序遍历,将会得到一个有序序列。
下面介绍在二叉排序树中查找一个元素是否存在,存在返回true,否则返回false。
树的节点定义:
class TreeNode { TreeNode left; TreeNode right; int value;}
递归写法:
public boolean findInBinarySortTree(TreeNode root, int target) { if(root == null) return false; if(root.value == target) return true; else if(root.value > target) return findInBinarySortTree(root.left, target); else return findInBinarySortTree(root.right, target);}
非递归写法:
public boolean findInBinarySortTree(TreeNode root, int target) { if(root == null) return false; TreeNode pNode = root; while(pNode != null) { if(pNode.value == target) return true; else if(pNode.value > target) pNode = pNode.left; else pNode = pNode.right; }}
0 0
- 二叉排序树中查找元素的递归和非递归写法
- 二分查找的递归写法和非递归写法
- 二分查找的递归和非递归写法
- 二分查找(递归和非递归写法)
- 递归和非递归的二分查找
- 二分查找的递归和非递归
- 二叉排序树的查询、插入的递归和非递归代码
- 递归和非递归的方法往二叉排序树中插入新的节点
- 递归和非递归的方法往二叉排序树中插入新的节点
- 二叉排序树(BST)的查找算法(非递归算法)
- 关于求平方和的,递归和非递归的写法
- 二分递归查找和非递归查找
- 递归查找和非递归查找
- 递归与非递归的各种写法
- 拆半查找的递归和非递归算法
- 拆半查找的递归和非递归算法
- 一个递归和非递归实现二分查找的代码
- C++数据结构--二分查找的递归和非递归实现
- vim配置pyflakes
- iOS开发textField点击背景空白隐藏收起键盘的N种方法
- hadoop 安装配置启动
- php header功能的使用
- thinkphp5 生成条形码整合
- 二叉排序树中查找元素的递归和非递归写法
- jsp页面写jstl标签和el表达式
- xib的UIScrollView自适应高度
- Android Missing Styles. Is the correct theme chosen for this layout?
- JNI/NDK入门
- Thinkphp3.2.3整合phpqrcode生成二维码
- 网络安全初级(友情扫描一个网站)
- 专业单词
- 漫步微积分六——极限的概念