package com.kane.test;
class BiTree{
private int data;//存放的数据
private BiTree left;//左子树
private BiTree right;//右子树
public BiTree(int x) {
data=x;
}
public void add(BiTree x) {
if (x.data<this.data) {//值小的给左子树
if (left==null) {
left=x;
}
else {
left.add(x);//如果左边为空就添加,不为空就递归添加
}
}
else {
if (right==null) {
right=x;
}
else {
right.add(x);
}
}
}
/**
* 用递归解决中序遍历
*/
public void midTravel() {
if (left!=null) {//要判断,不让有BUG
left.midTravel();
}
System.out.println(data);
if (right!=null) {
right.midTravel();
}
}
/**
* 用递归解决先序遍历
*/
public void preTravel() {
System.out.println(data);
if (left!=null) {//要判断,不让有BUG
left.preTravel();
}
if (right!=null) {
right.preTravel();
}
}
}
public class TestBinaryTre {
public static void main(String[] args) {
BiTree root=new BiTree(12);
root.add(new BiTree(9));
root.add(new BiTree(5));
root.add(new BiTree(8));
root.add(new BiTree(15));
root.add(new BiTree(20));
root.preTravel();
root.midTravel();
}
}
相关文章
- 05-09NC45-实现二叉树的先序、中序和后序遍历
- 05-09二叉树的三种遍历方式和实现(先序遍历,中序遍历,后序遍历)
- 05-09二叉树的线索化及其遍历(前序和中序)
- 05-09数据结构----二叉树的构建,从前序(后序)和中序
- 05-09【每日一题】【list转int数组】【Lambda的简化-方法引用】2022年1月15日-NC45 实现二叉树先序,中序和后序遍历
- 05-09数据结构:二叉树的先序遍历、中序遍历和后续遍历原理和实现
- 05-092021-02-02 已知二叉树的前序遍历和中序遍历求二叉树
- 05-09Leetcode练习(Python):递归类:面试题07. 重建二叉树:输入某二叉树的前序遍历和中序遍历的结果,请重建该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。
- 05-09Java实现二叉树的前序、中序、后序、层序遍历(递归方法)
- 05-09Java实现二叉树的先序、中序、后序、层序遍历(递归和非递归)