【算法与数据结构】查找二叉树的实现

简介: (转载请注明出处:http://blog.csdn.net/buptgshengod) 1.题目介绍     二叉树是一种基本的数据结构。查找二叉树是一种方便与查找,删除,插入等功能的二叉树,它要求每个父节点的左分支小于父节点,右分支大于父节点。下面我们来实现下面这个查找二叉树。 2.java代码实现 public class BinaryTree { priv

(转载请注明出处:http://blog.csdn.net/buptgshengod

1.题目介绍

    二叉树是一种基本的数据结构。查找二叉树是一种方便与查找,删除,插入等功能的二叉树,它要求每个父节点的左分支小于父节点,右分支大于父节点。下面我们来实现下面这个查找二叉树。

2.java代码实现

public class BinaryTree {
    private Node root;
	public BinaryTree(){
    	root=null;
    }
	/*
	 * 定义内部节点
	 */
	public class Node{
		private Node left;
		private Node right;
		private int data;
		public Node(int data){
			    this.left = null;
	            this.right = null;
	            this.data = data;
		}
	}
	/*
	 * 生成二叉树的函数
	 */
	public void BuildTree(Node node,int data){
		if(root==null){
			root=new Node(data);
		}
		else{
			if(data<node.data){
				if(node.left==null){
					node.left=new Node(data);
				}
				else{
					BuildTree(node.left,data);
				}
			}
			else{
				if(data>node.data){
					if(node.right==null){
						node.right=new Node(data);
					}
					else{
						BuildTree(node.right,data);
					}
				}
				
			}
			
		}
		
	}
	/**
     * 前序遍历
     * @param node
     */
    public void preOrder(Node node){
        if(node != null){
            System.out.println(node.data);
            preOrder(node.left);
            preOrder(node.right);
        }
    }

	
	public static void main(String[] args){
    	int[] a={1,4,26,8,77,43,75,};
        BinaryTree tree=new BinaryTree(); 
    	for(int i=0;i<a.length;i++){
    		tree.BuildTree(tree.root, a[i]);
    	}
    	tree.preOrder(tree.root);
		
    }
}

前序遍历输出结果

目录
相关文章
|
7月前
|
存储 监控 安全
企业上网监控系统中红黑树数据结构的 Python 算法实现与应用研究
企业上网监控系统需高效处理海量数据,传统数据结构存在性能瓶颈。红黑树通过自平衡机制,确保查找、插入、删除操作的时间复杂度稳定在 O(log n),适用于网络记录存储、设备信息维护及安全事件排序等场景。本文分析红黑树的理论基础、应用场景及 Python 实现,并探讨其在企业监控系统中的实践价值,提升系统性能与稳定性。
313 1
|
7月前
|
存储 监控 算法
基于跳表数据结构的企业局域网监控异常连接实时检测 C++ 算法研究
跳表(Skip List)是一种基于概率的数据结构,适用于企业局域网监控中海量连接记录的高效处理。其通过多层索引机制实现快速查找、插入和删除操作,时间复杂度为 $O(\log n)$,优于链表和平衡树。跳表在异常连接识别、黑名单管理和历史记录溯源等场景中表现出色,具备实现简单、支持范围查询等优势,是企业网络监控中动态数据管理的理想选择。
205 0
|
11月前
|
存储 算法 Java
算法系列之数据结构-二叉树
树是一种重要的非线性数据结构,广泛应用于各种算法和应用中。本文介绍了树的基本概念、常见类型(如二叉树、满二叉树、完全二叉树、平衡二叉树、B树等)及其在Java中的实现。通过递归方法实现了二叉树的前序、中序、后序和层次遍历,并展示了具体的代码示例和运行结果。掌握树结构有助于提高编程能力,优化算法设计。
363 10
 算法系列之数据结构-二叉树
|
11月前
|
算法 Java
算法系列之数据结构-Huffman树
Huffman树(哈夫曼树)又称最优二叉树,是一种带权路径长度最短的二叉树,常用于信息传输、数据压缩等方面。它的构造基于字符出现的频率,通过将频率较低的字符组合在一起,最终形成一棵树。在Huffman树中,每个叶节点代表一个字符,而每个字符的编码则是从根节点到叶节点的路径所对应的二进制序列。
355 3
 算法系列之数据结构-Huffman树
|
11月前
|
算法 Java
算法系列之数据结构-二叉搜索树
二叉查找树(Binary Search Tree,简称BST)是一种常用的数据结构,它能够高效地进行查找、插入和删除操作。二叉查找树的特点是,对于树中的每个节点,其左子树中的所有节点都小于该节点,而右子树中的所有节点都大于该节点。
482 22
|
存储 机器学习/深度学习 算法
C 408—《数据结构》算法题基础篇—链表(下)
408考研——《数据结构》算法题基础篇之链表(下)。
446 30
|
存储 算法 C语言
C 408—《数据结构》算法题基础篇—链表(上)
408考研——《数据结构》算法题基础篇之链表(上)。
621 25
|
4月前
|
机器学习/深度学习 算法 机器人
【水下图像增强融合算法】基于融合的水下图像与视频增强研究(Matlab代码实现)
【水下图像增强融合算法】基于融合的水下图像与视频增强研究(Matlab代码实现)
462 0
|
4月前
|
数据采集 分布式计算 并行计算
mRMR算法实现特征选择-MATLAB
mRMR算法实现特征选择-MATLAB
313 2
|
5月前
|
传感器 机器学习/深度学习 编解码
MATLAB|主动噪声和振动控制算法——对较大的次级路径变化具有鲁棒性
MATLAB|主动噪声和振动控制算法——对较大的次级路径变化具有鲁棒性
295 3