首页 > 编程语言 > 详细

二叉树(一)_Java插入数据呈现二叉树结构

时间:2019-07-03 10:48:38      阅读:116      评论:0      收藏:0      [点我收藏+]

以二叉树的形式存储数据

定义一个BinaryTree的泛型类,这个类只有一个属性root记录总根节点,提供唯一的方法添加数据到root,如果不是添加到root就调用子树的addElement方法。

package com.dy.dateStructure.test;

public class BinaryTree<T> {
	private ChildTree root;

	public void addNode(Comparable<T> data) {
		ChildTree childTree = new ChildTree(data);
		if(root == null) {
			root = childTree;
		}else {
			root.addElement(data);
		}
	}
}

  

 

定义一个子树类ChildTree,提供三个属性root记录子树的根节点,还有这个节点对应的左边树和右边树。

先和根节点做判断。

如果小于根节点,再判断根节点是否为空,如果为空则给左子树添加。不为空,已左子树为对象再调用方法addElement,

如果大于根节点,再判断根节点是否为空,如果为空则给右子树添加。不为空,已左子树为对象再调用方法addElement,

package com.dy.dateStructure.test;

public class ChildTree<T> {
	private Comparable<T> root;
	private ChildTree left;
	private ChildTree right;
	
	
	public ChildTree(Comparable<T> root) {
		super();
		this.root = root;
	}
	public void addElement(Comparable<T> data) {
		ChildTree childTree = new ChildTree(data);
		if(data.compareTo((T) this.root)<0 ) {
			if(this.left == null) {
				this.left = childTree;
			}else {
				this.left.addElement(data);
			}
		}else {
			if(this.right == null) {
				this.right= childTree;
			}else {
				this.right.addElement(data);
			}
		}
	}
	public ChildTree getLeft() {
		return left;
	}
	public void setLeft(ChildTree left) {
		this.left = left;
	}
	public ChildTree getRight() {
		return right;
	}
	public void setRight(ChildTree right) {
		this.right = right;
	}
	

}

  测试方法

public static void main(String[] args) {
		BinaryTree binaryTree = new BinaryTree();
		binaryTree.addNode(4);
		binaryTree.addNode(1);
		binaryTree.addNode(3);
		binaryTree.addNode(5);
		//binaryTree.addNode(1);
		

	}

  

执行流程

技术分享图片

二叉树(一)_Java插入数据呈现二叉树结构

原文:https://www.cnblogs.com/zhougongjin/p/11124957.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!