【发布时间】:2013-11-19 01:14:32
【问题描述】:
对于我的课堂项目,我必须构建一个 Trie。我的教授坚持每个节点都包含一个链表,但我不明白为什么。为什么我不能只在根目录下放一个链表?在每个节点中放置一个链表不是多余的吗?另外,我在每个节点的链表中放了多少个节点?
我的教授希望在我们的节点构造函数中看到以下字段:
(1) 前导字符(可能为空(对于根)
(2) 字符串标签(可能为null(对于root))
(3) Boolean IsWord ,表示当前节点是否代表整个单词(当一个单词可能是另一个单词的前缀时,这很有用)。
(4) 节点 *RightSIbling
(5) 节点 *FirstChild
另外,我很清楚还有其他可行的 Trie 实现不需要链表,但我的教授坚持要我们先学习这个特定的方法。
【问题讨论】:
-
它应该是一个的链表吗?
-
我相信链表应该包含它的孩子。但是它可能还需要包含它的正确兄弟,但我不能 100% 确定这一点
-
检查cs.bu.edu/teaching/c/tree/trie 使用您提到的相同数据结构并且解释得很好
标签: data-structures trie