我正在尝试构建一个TRIE,但为此,我需要树的根能够像我想要创建的那样多地指向子节点(因为它应该用作前缀树)。
所以,我想知道,是否有可能从我的根对象中得到许多指向我轮胎的所有儿子的指针?我想看看到底是怎样。
发布于 2015-05-23 07:51:21
要实现trie,您需要一种将信函转换为对下一个节点的引用的方法。有两个明显的选择:
Node[] nodes = new Node[26];
(假设英语语言)Map<Character, Node> map = new HashMap<Character, Node>();
数组是典型的C方法,但是由于您使用的是java,所以我从映射开始,因为使用起来更容易。
发布于 2015-05-23 07:16:38
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
将为您提供快速的迭代。
https://stackoverflow.com/questions/30414279
复制