本文共 1209 字,大约阅读时间需要 4 分钟。
class Node{ int value; Node left; Node right; public Node(int value) { super(); this.value = value; } @Override public String toString() { return "Node [value=" + value + "]"; } }
//添加节点 递归添加 需要满足二叉排序树 public void add(Node node) { if(node == null) { return;} //判断传入节点 和当前子树的根节点的关系 if(node.value < this.value) { if(this.left == null) { //如果当前节点的左子节点为空 this.left = node; }else { //如果不为空 向左子节点递归 this.left.add(node); } }else {//添加的节点大于当前节点的值 if(this.right == null) { this.right = node; }else { this.right.add(node); } } } //中序遍历 public void zhongxu() { if(this.left != null) { this.left.zhongxu(); } System.out.println(this); if(this.right != null) { this.right.zhongxu(); } }
//创建二叉排序树class BinarySortTree2{ private Node root; public void add(Node node) { if(root == null) { root = node; }else { root.add(node); } } //中序遍历 public void zhongxu() { if(root!=null) { root.zhongxu(); }else { System.out.println("kong"); } }}
int[] arr = {7,3,10,12,5,1,9};BinarySortTree2 binarySortTree2 = new BinarySortTree2();for(int i = 0;i < arr.length;i++) { binarySortTree2.add(new Node(arr[i]));} //中序遍历二叉排序树binarySortTree2.zhongxu();
转载地址:http://uihl.baihongyu.com/