您的位置:首页 > 编程语言 > Java开发

java比较器的应用(实现二叉树的排序算法)

2013-06-10 22:08 316 查看
本程序需要上一篇博客代码支持,详见java比较器的应用
package comparabledemo;
class Node {
private Comparable data;
private Node left;
private Node right;
public Node() {
super();
}
public Node(Comparable data) {
super();
this.data = data;
}
/** 添加接点 */
@SuppressWarnings("unchecked")
public void addNode(Node n) {
/** 添加左子树 */
if (this.data.compareTo(n.data) < 0) {
if (this.left == null) {
this.left = n;
} else {
this.left.addNode(n);
}
/** 添加右子树 */
} else{
// if (this.data.compareTo(n.data) >= 0)
if (this.right == null) {
this.right = n;
} else {
this.right.addNode(n);
}
}
}
/** !输出接点 */
public void printNode() {
if (this.left != null) {
this.left.printNode();
}
System.out.println(this.data);
if (this.right != null) {
this.right.printNode();
}
}
}
public class BinaryTree {
private Node root;
// 打印树的内容
public void print() {
this.root.printNode();
}
// 添加元素
public void add(Comparable d) {
Node newNode = new Node(d);
if (root == null) {
root = newNode;
} else {
root.addNode(newNode);
}
}
public static void main(String[] args) {
BinaryTree btree=new BinaryTree();
Comparable<StudentCompare> s1 = new StudentCompare("李成明", 55100617);
Comparable<StudentCompare> s2 = new StudentCompare("王瑶", 55100619);
Comparable<StudentCompare> s3 = new StudentCompare("李大鹏", 55100614);
Comparable<StudentCompare> s4 = new StudentCompare("赵国良", 55100613);
Comparable<StudentCompare> s5 = new StudentCompare("赵国良", 55100613);
Comparable<StudentCompare> s6 = new StudentCompare("胖子", 55100607);
Comparable<StudentCompare> s7 = new StudentCompare("白胖", 55100623);
btree.add(s1);
btree.add(s2);
btree.add(s3);
btree.add(s4);
btree.add(s5);
btree.add(s6);
btree.add(s7);

//      btree.add(5);
//      btree.add(4);
//      btree.add(8);
//      btree.add(6);
//      btree.add(4);
//      btree.add(3);
btree.print();

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: