package day02;
public class Tree {
//新建节点类
public class Node{
private int data;
private Node left;
private Node right;
//初始化data
public Node(int data){
this.data = data;
}
Node(){
}
}
//二叉树的根节点
private Node root;
//添加方法
public void add(int a){
//判断a 是不是第一个元素
if(root == null){
root = new Node(a);
return;
}
Node node = root;//表示当前节点
Node parentNode;//表示当前节点的父节点
while (true){
parentNode = node;
//如果a不是第一个元素,和 根节点进行比较
if(/*root*/node.data > a){
//让节点往下移动
node = node.left;
if(node == null){
//将a添加到树中
parentNode.left = new Node(a);
return;
}
//那么就添加到左边
}else if(node.data < a){
//那么就添加到右边
node = node.right;
if(node == null){
parentNode.right = new Node(a);
return;
}
}
}
}
//在内部看来: 对每一个节点进行遍历 - 递归
//对插入的数据进行遍历 - 按照从小到大的顺序进行排序
public void travelNode(Node node){
//对数据进行排序
if (node.left!=null){
travelNode(node.left);
}
System.out.println(node.data);
if (node.right!=null){
travelNode(node.right);
}
}
public void travel(){
//对数据进行排序
travelNode(root);
}
}
二叉树的原理代码实现(JAVA)
最新推荐文章于 2023-07-19 12:55:04 发布