6.二叉树

二叉树,每个结点的子节点最多只能有两个。而且结点的值在比左结点大,比右结点小.

实现可以把结点单独抽出来做一个类,包含它本身的数据及左右结点的引用.

另外的就是树类,包含根结点引用,其他的结点都可以从根结点遍历找到

1.节点类

public class Node {
	//关键字
	public int  iData;
	//数据
	public double dData;
	//左结点
	public Node leftChild;
	//右结点
	public Node rightChild;
	//展示当前结点的数据
	public void displayNode(){
		System.out.println("{"+iData+","+dData+"}");
	}
}

2.树类

public class Tree {
	private Node root;
	public Tree(){
		this.root=null;
	}
        //根据当前寻找的值进行判断是在左边结点还是右边结点
	public Node find(int key){
		Node current=this.root;
		while(key!=current.iData){
			if(key<current.iData){
				current=current.leftChild;
			}else{
				current=current.rightChild;
			}
			if (current==null) {
				return null;
			}
		}
		return current;
	}
        //根据插入结点的值比较判断是在左边节点还是右边结点,
        //直到判断的左结点或者右节点为空,则表示是插入的位置
	public void insert(int id,double dd){
		Node newNode=new Node();
		newNode.iData=id;
		newNode.dData=dd;
		Node current=this.root;
		Node parent;
		while(true){
			parent=current;
			if(id<current.iData){
				current=current.leftChild;
				if(current==null){
					parent.leftChild=newNode;
					return ;
				}
			}else{
				current=current.rightChild;
				if(current==null){
					parent.rightChild=newNode;
					return ;
				}
			}
		}
		
	}
	public boolean delete(int key){
		//当删除的结点下面没有其他结点
		//当删除的结点下面有一个结点
		//当删除的结点下面有两个结点
		return true;
	}
	
}

  

posted @ 2017-08-29 10:26  Kyhoon  阅读(190)  评论(0编辑  收藏  举报