/*
* 二叉树的原理分析:
* 树是一种重要的非线性数据结构,直观来看,它是数据元素(在树中称为节点)按分支关系组织起来的结构
* 二叉树是每个节点最多有两个子树的有序树。通常被称为"左子树"和"右子树"
*
* 二叉树算法排序规则:
* 1、选择第一个元素作为根节点
* 2、之后如果元素大于根节点放在右子树,如果元素小于根节点放在左子树
* 3、最后按照中序遍历的方式进行输出,则可以得到排序的结果(左->根->右)
*
*/
class BianTree{
private Node root;//根节点
// 这里的增加方法是当树中没有数据的时候才会添加
public void add(int data){
if(root==null){
root=new Node(data);
}else{
root.addNode(data);
}
}
// 不等于空说明本身里面就有数据就不需要进进行添加可以直接打印
public void print(){
if(root!=null){
root.printNode();
}
}
class Node{//类中类
private int data;//当前节点
private Node left;//左子树
private Node right;//右子树
public Node(int data){
this.data=data;
}
public void addNode(int data){
if(this.data>data){
if(this.left==null){
this.left=new Node(data);
}else{
this.left.addNode(data);
// 递归调用(自己调自己)
}
}else{
if(this.right==null){
this.right=new Node(data);
}else{
this.right.addNode(data);
}
}
}
// 输出节点(按照什么方式打印)
public void printNode(){
if(this.left!=null){
this.left.printNode();
}
System.out.print(this.data+"");
if(this.right!=null){
this.right.printNode();
}
}
}
}
public void Test{
public static void main(String[] args){
BianTree bt=new BianTree();
bt.add(8);
bt.add(13);
bt.add(4);
bt.add(7);
bt.add(12);
bt.add(9);
bt.add(2);
bt.print();
//这里的输出结果是从小到大排序的
}
}
java之二叉树算法,超简单
最新推荐文章于 2023-07-08 00:00:00 发布