`

二叉树的先序创建与查找与先序,中序,后序打印

 
阅读更多
//直接贴点代码
public class Test {
public  static void main(String []args){
	//二叉树的生成与查找
		BinTree binTree=new BinTree();
		int arr[]={2,4,7,6,1,5,8};
		binTree.buileTree(arr);
		boolean flag=binTree.search(8);
		if (flag) {
			System.out.print("存在");
		}else {
			System.out.print("不存在");
		}
		binTree.print();
		
}
}

package com.tree.sym;


/*
 * 采用的方式是先序创建二叉树,然后分别通过中序和后续打印出来
 * 父节点的值比左子节点大,比右节点小
 */
public class BinTree {
	Node rootNode;
     int i=0;
	private  class Node {
		int data;
		Node left;
		Node right;
		Node(int data) {
			this.data = data;
			left = null;
			right = null;
		}
		
	}

	public BinTree() {
	}

	public void insert(int data) {
		rootNode = insert(rootNode, data);
	}
        //运用递归,把各个节点按顺序储存起来
	private Node insert(Node node, int data) {
		if (node == null) {
			node = new Node(data);
		} else {
			if (data <= node.data) {
				node.left = insert(node.left, data);
			} else {
				node.right = insert(node.right, data);
			}
		}
		return node;
	}

	public void buileTree(int[] arr) {
		for (int i = 0; i < arr.length; i++) {
			insert(arr[i]);
		}
	}
   //查找指定的某数
  public boolean search(int value){
    	return search(rootNode,value);
    }
	public boolean search( Node node,int value) {
		
			if (node.data == value) {
				return true;
			} else if (node.data > value) {
				if (node.left != null) {
					return search(node.left, value);
					
				}else {
					return false;
				}
			} else {
				if (node.right != null) {
					return search(node.right, value);
				
				}else {
					return false;
				}
			}
	}
	public void print() {
		print(rootNode);

	}
	public void  print(Node node) {
		if(node==null){
			return;
		}
		System.out.println(node.data);//通过先序打印出来
		print(node.left);
//		System.out.println(node.data);//通过中序打印出来
		print(node.right);
//		System.out.println(node.data);//通过后序打印出来
	}
}


最后祝自己女生节快乐!
分享到:
评论

相关推荐

    建立二叉树,并输出二叉树的先序,中序和后序遍历序列,以及二叉树的叶子数

    本示例主要关注如何建立二叉树以及进行三种主要的遍历方法:先序遍历、中序遍历和后序遍历,并计算二叉树的叶子节点数量。 首先,我们定义了一个`BiTNode`结构体,用于表示二叉树的节点,包含一个数据元素`data`和...

    二叉树三种遍历,先序和中序建立二叉树,后序和中序建立二叉树,二叉搜索树查找,删除,插入

    大连理工大学数据结构上机 二叉树三种遍历,先序和中序建立二叉树,后序和中序建立二叉树,二叉搜索树查找,删除,插入

    二叉树先序、中序、后序遍历(递归、非递归算法)

    本文将详细介绍二叉树的先序、中序和后序遍历,以及如何通过递归和非递归(迭代)的方式来实现这些遍历方法。 **先序遍历(Preorder Traversal)** 先序遍历的顺序是:根节点 -&gt; 左子树 -&gt; 右子树。递归实现时,...

    二叉树的操作 建立 删除 中序,先序 后序遍历

    本节将详细介绍二叉树的操作,包括建立、删除以及三种遍历方式:中序遍历、先序遍历和后序遍历。 1. **二叉树的建立** - **动态建立**:通常在编程中,我们可以通过动态内存分配创建二叉树的节点,然后根据需求...

    实现先序,中序和后序遍历的二叉树遍历程序

    本程序实现了三种主要的二叉树遍历方法:先序遍历、中序遍历和后序遍历。以下是关于这些遍历方法的详细解释: 1. 先序遍历(Preorder Traversal): - 访问根节点。 - 对左子树进行先序遍历。 - 对右子树进行...

    二叉树遍历流程图(先序、中序、后序、宽度遍历)

    二叉树遍历是计算机科学中处理树结构数据时常用的一种技术,主要分为四种类型:先序遍历、中序遍历、后序遍历和宽度优先遍历。这些遍历方法各有特点,适用于不同的场景。 1. **先序遍历**: - **递归实现**:先...

    二叉树先序,中序,后序遍历非递归实现

    ### 二叉树先序、中序、后序遍历非递归实现 #### 一、引言 在计算机科学中,二叉树是一种常用的数据结构,它在算法设计、数据处理等方面有着广泛的应用。对于二叉树的操作,通常包括插入、删除、查找以及遍历等基本...

    Project2_二叉树_先序遍历_后序遍历_中序遍历_

    二叉树的遍历是理解和操作二叉树的关键技能,其中先序遍历、中序遍历和后序遍历是最常见的三种方法。 1. **先序遍历**:先序遍历也被称为根-左-右遍历,顺序是首先访问根节点,然后递归地访问左子树,最后访问右子...

    数据结构二叉树,先序,中序,后序遍历,深度,广度优先搜索

    二叉树的先序、中序和后序遍历都是深度优先搜索的不同策略。 **广度优先搜索(Breadth-First Search, BFS)**:BFS从根节点开始,逐层遍历所有节点。在每一层中,它先访问左子节点,然后访问右子节点。BFS常用于...

    数据结构实验-3二叉树遍历与路径查找(二叉树实验)

    实验三 二叉树遍历与路径查找(二叉树实验) 实现功能:建立二叉树存储结构、求二叉树的先序遍历、求二叉树的中序遍历、求二叉树的后序遍历、求二叉树的层次遍历、求根到给定结点的路径。 主控菜单: 1.建立二叉树...

    二叉树的非递归先序中序后序(数据结构和算法分析)

    ### 二叉树的非递归先序、中序、后序遍历(数据结构与算法分析) 在计算机科学领域,二叉树是一种常见的数据结构,具有广泛的应用场景。本篇文章将详细介绍如何通过非递归的方式实现二叉树的先序、中序以及后序遍历...

    数据结构遍历二叉树先序

    根据给定的文件信息,我们将深入探讨二叉树先序遍历的相关知识点,包括其定义、实现原理以及应用场景等。 ### 一、二叉树先序遍历的基本概念 二叉树是一种常见的非线性数据结构,每个节点最多有两个子节点,通常...

    使用先序,中序,后序遍历二叉树

    总结来说,这个程序提供了创建、遍历和销毁二叉树的功能,其中重点在于先序、中序和后序遍历的实现。通过这些遍历方法,可以有效地对二叉树的节点进行访问和操作,这是理解和操作二叉树数据结构的基础。在C语言环境...

    建立二叉树先中后序查找

    主函数首先调用 `CREATREE()` 函数创建二叉树,然后依次打印先序、中序和后序遍历的结果。 通过以上分析,我们可以看到二叉树的构建与遍历过程。先序、中序和后序遍历提供了不同的视角来查看树的结构,这对于理解和...

    前序中序求后序

    "前序中序求后序"就是一种常见的二叉树遍历问题,它涉及到三种主要的遍历方式:前序遍历、中序遍历和后序遍历。在C语言中,这些问题通常通过递归函数来解决,而无需构建二叉链表结构。 前序遍历(Preorder ...

    先序、中序、后序遍历并显示二叉树.rar_class33v_saleps2_二叉树_后序遍历

    本资料包主要关注三种主要的二叉树遍历方法:先序遍历、中序遍历和后序遍历,并提供了相应的显示二叉树的方法。 先序遍历,也称为前序遍历,是二叉树遍历的一种方式,其顺序为“根-左-右”。即首先访问根节点,然后...

    c代码-递归创建二叉树,先序、中序、后序递归遍历二叉树

    下面将详细解释如何使用C代码实现递归创建二叉树以及三种主要的递归遍历方法:先序遍历、中序遍历和后序遍历。 首先,我们需要定义一个二叉树节点的结构体: ```c typedef struct TreeNode { int val; // 节点的...

    已知先序和中序遍历序列,求后序遍历序列.TXT

    根据给定文件的信息,本文将围绕“已知先序和中序遍历序列,求后序遍历序列”的核心主题进行展开,详细解析其中涉及的数据结构与算法,并深入理解其在C语言中的实现细节。 ### 数据结构:二叉树 在计算机科学中,*...

    西南交通大学-数据结构实验报告-求二叉树某结点在先序、中序、后序遍历中的访问次序

    先、中、后序遍历二叉树分别采用先序、中序、后序递归遍历法,该字符在先、中、后序遍历中的访问次序在先序、中序、后序递归遍历法的基础上增加变量n进行访问次数的计数。 输入/输出设计简要描述: 从键盘输入先序...

Global site tag (gtag.js) - Google Analytics