二叉树(一)_Java插入数据呈现二叉树结构
作者:互联网
以二叉树的形式存储数据
定义一个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,addNode,ChildTree,data,binaryTree,插入,二叉树,root,节点 来源: https://www.cnblogs.com/zhougongjin/p/11124957.html