写在之前:
相比学习利用C语言的数据结构 运用Java的数据结构确实简单了一些 原因是一些东西是已经封装好的 直接调用就行 但是二叉树没有封装 个人认为还是比前者好学一点…
1、二叉树概念:
二叉树由各种节点组成
二叉树特点:
每个节点都可以有左子节点,右子节点
每一个节点都有一个值
2、二叉树排序-插入数据
插入基本逻辑是,小、相同的放左边,大的放右边
第一个数在根节点 之后相比较挨个挨个 执行插入基本逻辑
图示:
3、代码示例:
建立 二叉树
public Node leftNode;
public Node rightNode;
public Object value;
public void add(Object v)
{
if(value==null)
{
value=v;
}
else
{
if((Integer)v<=(Integer)value)
{
if(leftNode==null)
leftNode=new Node();
leftNode.add(v);
}
else
{
if(rightNode==null)
rightNode=new Node();
rightNode.add(v);
}
}
}
1、分别建立左右两个节点(注意是利用类类型 定义引用 便于创建对象)
之后用Object这个类 定义一个值 由于Object类是所有类的父类 便于插入各种类型数据
2、先判定value是否为空 空直接插入当根节点 不空则做判断——要插入的数和根节点(上一节点)作比较是否大雨或小于相同 这样做是为判断出是左节点还是右节点 之后再看节点是否为空 不为空插不进去 空则新建对象 之后在递归调用该方法时 value才是空值便于插入 因为新对象所调用的方法起始都是空值 (相当于刷新)
3、中序遍历之后再输出(排序在创建树的时候就已经完成了)
public List
之前的 对于左右节点的新建对象 实质是建立一个个对象 之后EachAdd 这个方法中进行实例化一个容器对象进行存储—— ob.add(value);是挨个存储 两条判断语句则是在对左右两节点的值进行容器合并。
以下主方法:
public static void main(String[] args) {
int random[]=new int[] {12,34,43,45,65,56,67,23,1,2};
Node node = new Node();
for (int i : random) {
node.add(i);
}
System.out.println(node.EachAdd());
}



