//直接贴点代码
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)** 先序遍历的顺序是:根节点 -> 左子树 -> 右子树。递归实现时,...
本节将详细介绍二叉树的操作,包括建立、删除以及三种遍历方式:中序遍历、先序遍历和后序遍历。 1. **二叉树的建立** - **动态建立**:通常在编程中,我们可以通过动态内存分配创建二叉树的节点,然后根据需求...
本程序实现了三种主要的二叉树遍历方法:先序遍历、中序遍历和后序遍历。以下是关于这些遍历方法的详细解释: 1. 先序遍历(Preorder Traversal): - 访问根节点。 - 对左子树进行先序遍历。 - 对右子树进行...
二叉树遍历是计算机科学中处理树结构数据时常用的一种技术,主要分为四种类型:先序遍历、中序遍历、后序遍历和宽度优先遍历。这些遍历方法各有特点,适用于不同的场景。 1. **先序遍历**: - **递归实现**:先...
### 二叉树先序、中序、后序遍历非递归实现 #### 一、引言 在计算机科学中,二叉树是一种常用的数据结构,它在算法设计、数据处理等方面有着广泛的应用。对于二叉树的操作,通常包括插入、删除、查找以及遍历等基本...
二叉树的遍历是理解和操作二叉树的关键技能,其中先序遍历、中序遍历和后序遍历是最常见的三种方法。 1. **先序遍历**:先序遍历也被称为根-左-右遍历,顺序是首先访问根节点,然后递归地访问左子树,最后访问右子...
二叉树的先序、中序和后序遍历都是深度优先搜索的不同策略。 **广度优先搜索(Breadth-First Search, BFS)**:BFS从根节点开始,逐层遍历所有节点。在每一层中,它先访问左子节点,然后访问右子节点。BFS常用于...
实验三 二叉树遍历与路径查找(二叉树实验) 实现功能:建立二叉树存储结构、求二叉树的先序遍历、求二叉树的中序遍历、求二叉树的后序遍历、求二叉树的层次遍历、求根到给定结点的路径。 主控菜单: 1.建立二叉树...
### 二叉树的非递归先序、中序、后序遍历(数据结构与算法分析) 在计算机科学领域,二叉树是一种常见的数据结构,具有广泛的应用场景。本篇文章将详细介绍如何通过非递归的方式实现二叉树的先序、中序以及后序遍历...
根据给定的文件信息,我们将深入探讨二叉树先序遍历的相关知识点,包括其定义、实现原理以及应用场景等。 ### 一、二叉树先序遍历的基本概念 二叉树是一种常见的非线性数据结构,每个节点最多有两个子节点,通常...
总结来说,这个程序提供了创建、遍历和销毁二叉树的功能,其中重点在于先序、中序和后序遍历的实现。通过这些遍历方法,可以有效地对二叉树的节点进行访问和操作,这是理解和操作二叉树数据结构的基础。在C语言环境...
主函数首先调用 `CREATREE()` 函数创建二叉树,然后依次打印先序、中序和后序遍历的结果。 通过以上分析,我们可以看到二叉树的构建与遍历过程。先序、中序和后序遍历提供了不同的视角来查看树的结构,这对于理解和...
"前序中序求后序"就是一种常见的二叉树遍历问题,它涉及到三种主要的遍历方式:前序遍历、中序遍历和后序遍历。在C语言中,这些问题通常通过递归函数来解决,而无需构建二叉链表结构。 前序遍历(Preorder ...
本资料包主要关注三种主要的二叉树遍历方法:先序遍历、中序遍历和后序遍历,并提供了相应的显示二叉树的方法。 先序遍历,也称为前序遍历,是二叉树遍历的一种方式,其顺序为“根-左-右”。即首先访问根节点,然后...
下面将详细解释如何使用C代码实现递归创建二叉树以及三种主要的递归遍历方法:先序遍历、中序遍历和后序遍历。 首先,我们需要定义一个二叉树节点的结构体: ```c typedef struct TreeNode { int val; // 节点的...
根据给定文件的信息,本文将围绕“已知先序和中序遍历序列,求后序遍历序列”的核心主题进行展开,详细解析其中涉及的数据结构与算法,并深入理解其在C语言中的实现细节。 ### 数据结构:二叉树 在计算机科学中,*...
先、中、后序遍历二叉树分别采用先序、中序、后序递归遍历法,该字符在先、中、后序遍历中的访问次序在先序、中序、后序递归遍历法的基础上增加变量n进行访问次数的计数。 输入/输出设计简要描述: 从键盘输入先序...