RT
BitNode.java
/**
* Created by Administrator on 2017/1/22.
*/
public class BitNode {
int data;
BitNode lchild;
BitNode rchild;
public void setNode(int data,BitNode lc,BitNode rc){
this.data=data;
lchild =lc;
rchild =rc;
}
}
Btree.java :二叉查找数: 根的大小 在 左右节点之间
/**
* Created by Administrator on 2017/1/22.
*/
public class Btree {
public BitNode root=null;
public void insert(Integer val){
BitNode p=new BitNode();
p.data=val;
if(this.root==null){
this.root=p;
}
else{
BitNode q=this.root;
while(true){
if(val< q.data){
if(q.lchild==null){
q.lchild=p;
break;
}
else{
q=q.lchild;
}
}
else if(val>q.data){
if(q.rchild==null){
q.rchild=p;
break;
}
else{
q=q.rchild;
}
}
else{
System.out.println(val+"已经存在");
}
}
}
}
}
main.java
import java.util.LinkedList;
import java.util.Queue;
/**
* Created by Administrator on 2017/1/22.
*/
public class main {
// static int counter=0;
//
// public static BitNode createBiTree( BitNode root,int[] a,int i){
// if( i<a.length){
// if(a[i]==0){
// root=null;
// }else{
// BitNode lchild=new BitNode();
// BitNode rchild=new BitNode();
// root.data=a[i];
// root.lchild=createBiTree(lchild,a,++counter);
// root.rchild=createBiTree(rchild,a,++counter);
// }
// }
// return root;
// }
public static void visitTNode(BitNode node){
System.out.print(node.data+" ");
}
public static void levelTraverse(BitNode root){
Queue<BitNode> queue=new LinkedList<BitNode>();
queue.offer(root);
while(!queue.isEmpty()){
BitNode bitNode=queue.poll();
visitTNode(bitNode);
// System.out.println("############3");
if( bitNode.lchild!=null)
queue.offer(bitNode.lchild);
if( bitNode.rchild!=null)
queue.offer(bitNode.rchild);
}
}
public static void main(String args[]){
// System.out.print("start:");
// BitNode root=new BitNode();
// int[] a={1,2,3,0,0,4,0,0,5,0,0};
// root=createBiTree(root,a,counter);
// levelTraverse(root);
Btree b=new Btree();
int[] data={3,2,5,4,8,7,9};
for(int i=0;i<data.length;i++){
b.insert(data[i]);
}
levelTraverse(b.root);
}
}