//直接贴点代码
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);//通过后序打印出来
}
}
最后祝自己女生节快乐!
分享到:
相关推荐
大连理工大学数据结构上机 二叉树三种遍历,先序和中序建立二叉树,后序和中序建立二叉树,二叉搜索树查找,删除,插入
实验三 二叉树遍历与路径查找(二叉树实验) 实现功能:建立二叉树存储结构、求二叉树的先序遍历、求二叉树的中序遍历、求二叉树的后序遍历、求二叉树的层次遍历、求根到给定结点的路径。 主控菜单: 1.建立二叉树...
建立一个二叉树,采用先序、中序、后序方法分别进行查找。
建立二叉树存储结构、求二叉树的先序遍历、求二叉树的中序遍历、求二叉树的后序遍历、求二叉树的层次遍历、求根到给定结点的路径。
使用二叉树的链式存储结构,运用二叉树的先序,中序,后序遍历递归实现二叉树遍历,二叉树的构造通过先序序列、线序序列和中序序列、拷贝构造函数构造完成,实现了二叉树节点个数计算,高度计算,关键值查找,节点的...
二叉树的基本操作,建树,先序遍历,中序遍历,后序遍历,叶子数,树深
建立二叉树并遍历的程序,可以实现现需输入二叉树,进行先序、中序、后序遍历,同时通过树控件输出二叉树。
先序遍历中序遍历后序遍历图解
按先序扩展序列建立二叉树 先序、中序、后序遍历的递归算法 中序遍历的非递归算法 先序遍历的非递归算法 后序遍历的非递归算法 层次的非递归算法 求二叉树的深度(后序遍历)
C/C++实现二叉树的遍历与路径查找,包括源代码和实验报告。程序实现了二叉树的建立,修改,先序、中序、后序遍历,可以查看二叉树的层次结构,求根到指定结点的路径。
3.假设一棵二叉树的中序序列为DCBGEAHFIJK和后序序列为DCEGBFHKJIA,则先序序列为: (7) 。 4.深度为k的完全二叉树至少有 (8) 个结点;至多有 (9) 结点。 5.在一棵二叉树中,度为1的结点有40个,总的结点数为99...
3 程序所能达到的功能:生成一个新的二叉树,实现对二叉树的先序,中序,后序和层次遍历,计算二叉树的深度,结点数,叶结点数,。 4 测式数据: A生成一个新的二叉树后,直接在键盘上按要求输入字符,可以依次输入...
3、按先序和中序序列建立二叉树 4、按后序和中序建立二叉树 5、先根遍历(递归) 6、中根遍历(递归)" 7、后根遍历(递归) 8、层次遍历" 9、求叶子节点数" 10、求节点总数 11、求二叉树中度为1的节点总数 12、求二叉树中...
主要包含二叉树的添加 查找 深度搜索 层次遍历 先序 后序中序遍历及图的深度搜索等常用算法
2、 掌握二叉树的遍历(先序、中序、后序)算法 二、 问题描述 1. 查找自己家族的族谱,至少上溯至祖爷爷辈; 2. 族谱二叉树的建立(树的深度要>=4); 3. 按照二叉树的结构输出二叉树; 4. 三种不同遍历算法遍历此...
递归实现先序遍历、中序遍历、后序遍历 堆栈实现先序遍历、中序遍历、后序遍历 队列实现层次遍历 # -*- coding=utf-8 -*- class Node(object): """节点类""" def __init__(self, element=-1, l_child=None, r_...
数据结构中的二叉树,介绍了先序遍历,中序遍历,后序遍历三种方式
基于二叉链表的二叉树,实现了二叉树的多种操作:添加、删除、拷贝、清空、树深度计算、父节点、兄弟节点获取、先中后序递归及非遍历、按层次遍历、中序迭代器(非递归算法)、节点查找、先序和中序序列重建二叉树、...
(1) 创建二叉树。按照用户需要构建二叉树 (2) 分别以先序、中序、后序遍历二叉树 (3) 查找子节点元素
二叉树的创建,先序、中序、后序遍历,查找,删除一个节点,删除整棵树。用户需在txt文本文件里先序输入树。