我想创建一棵树来检测插入是否是字符类型的对象,它将比较每个对象并决定插入的位置[右或左],(我知道它可以通过 ascii 表中的位置检测),如果插入是 int 的对象,它将执行相同的操作。
我的问题:
1. 我需要创建树并同时设置一个比较器(例如,如果它是一个 Chars 树,它将是一个 Chars_comperator 来检查 Chars 并且他实现了 Comparator ( of java )。?2.我的现在的代码只适用于 int。因为我将对象转换为字符串,然后再转换为 int,毕竟我比较并决定在哪里插入,这就是我需要做的吗?或者还有另一种方法可以做到这一点可以照顾各种对象吗?这是我的代码以及我如何创建树,
树类
public class tree {
bNode root;
public tree() {
this.root = null;
}
public boolean isEmpty(){
return root==null;
}
public void insert(Object data)
{
if(isEmpty())
this.root = new bNode(data);
else
this.root.insert(data);
}
}
bNode 类
public class bNode {
protected Object data;
protected bNode left;
protected bNode right;
public bNode(Object data) {
this.data = data;
this.left = null;
this.right = null;
}
public void insert(Object data){
if(Integer.parseInt(data.toString())<Integer.parseInt(this.data.toString())){
if(this.left==null)
this.left = new bNode(data);
else
this.left.insert(data);
}
else{
if(this.right==null)
this.right = new bNode(data);
else
this.right.insert(data);
}
}
主班
public class Main {
/**
* @param args
*/
public static void main(String[] args) {
tree x = new tree();
char a = 'G';
x.insert(a);
x.insert(60);
x.insert(40);
x.insert(30);
x.insert(59);
x.insert(61);
x.root.printTree(x.root);
}
}
谢谢!