6.二叉树

Posted Kyhoon

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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;
	}
	
}

  

以上是关于6.二叉树的主要内容,如果未能解决你的问题,请参考以下文章

《大话数据结构》笔记(6-2)--树:二叉树

C语言数据结构“遍历二叉树”

二叉树6:迭代法实现二叉树的遍历

LeetCode与《代码随想录》二叉树篇:做题笔记与总结-JavaScript版

二叉树概念及其三种遍历方式实现

重建二叉树