树是一种重要的非线性数据结构,它是数据元素(节点)按照分支关系组织起来的结构。二叉树是每个节点最多有两个子树的有序树。通常子树称为左子树和右子树。
二叉树排序规则:
1、选择第一个元素作为根节点
2、如果元素大于根节点则放在右子树,若小于根节点则放在左子树
3、最后按照中序遍历的方式进行输出,则可得到排序的结果(左——根——右)
8,3,10,1,6,14,4,7,13
public class binarytree
{
private Node root;
public void addNode(int data)
{
if (root==null)
{
root=new Node(data);
}
else
{
root.add(data);
}
}
public void printNode(int data)
{
if(root!=null)
{
root.print();
}
}
private class Node
{
private int data;
private Node left;
private Nod right;
public Node(int data)
{
this.data=data;
}
//添加节点
public void add(int data)
{
if(this.data>data)
{
if(this.left==null)
{
this.left=new Node(data);
}
else
{
this.left.add(data);
}
}
else if(this.data<=data)
{
if(this.right==null)
{
this.right=new Node(data);
}
else
{
this.right.add(data);
}
}
}
//中序遍历:左根右
public void print()
{
if(root.left!=null)
{
root.left.print();
}
System.out.print(this.data+"->");
if(this.right!=null)
{
this.right.print();
}
}
}
}
public class binarytreetest
{
public static void main(String [] args)
{
binarytree bt=new binarytree();
bt.addNode(8);
bt.addNode(3);
bt.addNode(10);
bt.addNode(1);
bt.addNode(6);
bt.addNode(14);
bt.addNode(4);
bt.addNode(7);
bt.addNode(13);
bt.printNode();
}
}