我对java非常陌生,而我所有的其他搜索都会导致比我给出的问题更复杂的事情,所以我想知道我怎么会这样做?我希望我的树节点包含以下字段:父节点,左节点,右节点和数据。
答案 0 :(得分:0)
由于您是Java新手,最基本的结构将是这样的:
public class Node {
private Node parent, left, right;
private Integer data;
public Node(Node parent, Node left, Node right, Integer data) {
this.parent = parent;
this.left = left;
this.right = right;
this.data = data;
}
public Node getParent() { return this.parent; }
public Node getLeft() { return this.left; }
public Node getRight() { return this.right; }
public Integer getData() { return this.data; }
public void setParent(Node parent) { this.parent = parent; }
public void setLeft(Node left) { this.left = left; }
public void setRight(Node right) { this.right = right; }
public void setData(Integer data) { this.data = data; }
}
如果您想进一步了解有关面向对象编程的更多信息,我会调查generics.
public class Node<T extends Comparable<T>> {
private Node parent, left, right;
private T data;
// Getters, setters, compare methods here
}
这样您就可以声明Node<Integer>
,Node<String>
,Node<CustomClass>
,以免限制使用某种类型的数据。您需要执行extend Comparable<T>
,以便在执行insert()
和其他树函数时轻松比较对象。