我正在尝试构建一个TRIE,但为此我需要树的根能够指向儿子,就像我想要创建的那样(因为它应该用作前缀树)。
所以我想知道是否有可能从我的根对象中找出许多指针给我所有轮胎的儿子? 而且我想看看到底是怎么回事。
答案 0 :(得分:2)
Java不使用术语pointers
。它使用术语references
。虽然引用在传递给方法时会显示指针的某些行为,例如pass-by-value
,但它们仍然被称为references
。
继续讨论实际问题。您可以使用Collection
个引用。请考虑以下示例:
class Node {
List<Node> children = new ArrayList<Node>();
public void addNode(Node d) {
children.add(d);
}
/*Get Nth child */
public Node getChild(int n) {
if(n<children.size())
return children.get(n);
return null;
}
}
您还可以使用LinkedList
代替ArrayList
,具体取决于您希望实现的目标。 LinkedList
将提供快速插入和删除,而ArrayList
将为您提供快速迭代。
答案 1 :(得分:0)
要实现trie,您需要一种方法将字母转换为对下一个节点的引用。有两个明显的选择:
Node[] nodes = new Node[26];
(假设英语)Map<Character, Node> map = new HashMap<Character, Node>();
数组是经典的C方法,但由于你在java中工作,我会从地图开始,因为它更容易使用。