概述
1.二叉搜索树的概念
一棵二叉搜索树是以一棵二叉树来组织的,这样的一棵树可以以链表的数据结构来表示,其中的每个结点就是一个对象。
2.二叉搜索树结点对象的属性
(1)key(关键字,用于代表整个对象)
(2)基本数据和信息
(3)left、right和p,分别指向结点的左子结点,右子结点,父结点(父节点的使用较少时,可以省略)
class TreeNode {
int key; //关键字
TreeNode left; //左节点
TreeNode right; //右节点
TreeNode() {
}
TreeNode(int val) {
this.val = val; }
TreeNode(int val, TreeNode left, TreeNode right) {
this.val = val;
this.left = left;
this.right = right;
}
}
3.二叉搜索树的最基本构造规则
对于任何结点node,其左子树的每一个结点的key不能大于node.key,其右子树的每一个结点的key不能小于node.key。这一点构造规则可以引出二叉搜索树的一个性质——如果childNode是node的左子树上的一个结点,则childNode.key<=node.key,同理,如果在右子树上,则childNode.key>=node.key。
4.二叉树搜索的遍历
(1)二叉树的遍历主要有2种方法,分别是BFS广度搜索遍历和DFS深度搜索遍历,其中广度搜索遍历的核心是对于队列这一数据结构的应用;深度搜索遍历有两种方式,一种是通过递归函数的设计进行遍历,另一种是利用栈这一数据结构进行遍历
1>DFS
//递归遍历
public void search(TreeNode root){
if(root==null)
return;
search(root.left);
search(root.right);
}
//利用栈进行遍历
public void search(TreeNode root){
public void search(TreeNode root) {
TreeNode node = root;
Stack<TreeNode> DFS = new Stack<>();
while (!DFS.isEmpty() || node != null) {
while (node != null) {
DFS.
最后
以上就是个性小熊猫为你收集整理的二叉搜索树的遍历搜索(Java实现)的全部内容,希望文章能够帮你解决二叉搜索树的遍历搜索(Java实现)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复