读书人

又做了一个应用内部类的排序二叉树

发布时间: 2012-09-19 13:43:53 作者: rapoo

又做了一个使用内部类的排序二叉树

相对于上一个,这个二叉树是一个排序二叉树,根据你输入的结点的名称自动按大小排序。结点类Node放在了BinaryTree2类的里边,是为了更好的封装。这个代码相对于上一个更易读,更面向对象!值得一读!

class BinaryTree2{class Node{private String name;// String类是已经实现了Comparable<String>接口的,可以进行比较private Node left;private Node right;public Node(String name){this.name = name;}public void addNode(Node newNode){if (newNode.name.compareTo(this.name) < 0){// 放在左子树if (this.left == null){this.left = newNode;}else{this.left.addNode(newNode);}}else if (newNode.name.compareTo(this.name) > 0){// 放在右子树if (this.right == null){this.right = newNode;}else{this.right.addNode(newNode);}}}public void printNode(){// 中序遍历if (this.left != null){this.left.printNode();}System.out.print(this.name + "-->");if (this.right != null){this.right.printNode();}}}private Node root;public void add(String name){Node newNode = new Node(name);if (root == null){root = newNode;}else{root.addNode(newNode);}}public void print(){this.root.printNode();}}class Test2{public static void main(String[] args){BinaryTree2 bt = new BinaryTree2();bt.add("A");bt.add("D");bt.add("B");bt.add("F");bt.add("E");bt.add("C");bt.add("F");bt.add("G");bt.print();}}

?

读书人网 >编程

热点推荐