根据点3和4 的libstdc ++文档 ,PATRICIA尝试有两种类型的节点:
A(PATRICIA)线索类似于树,但有以下区别:
它明确意见键作为元素的序列。 例如,特里结构可以查看一个字符串作为字符序列; 特里结构可以查看一个数字作为比特序列。
它不是(必然)二进制文件。 每个节点具有扇出的n + 1,其中n是不同的元素的数量。
它仅在叶节点存储的值。
内部节点具有性质A)每个人都有至少两个孩子,和B)各股相同的前缀与任何后裔。
这本书我一直在读(算法在C,1-4部分由罗伯特·塞奇威克)似乎描述PATRICIA线索存储与仅n个节点的n值,使用内部节点的存储值:
像DSTS,帕特里夏尝试允许只用N个节点树搜索N个按键。 ......我们避免通过其他简单的设备进行外部节点:我们存储在内部节点的数据,并指向向上返回到正确的内部节点线索链接替换链接到外部节点
这似乎有信心在这里的两个阵营:
- 一方面,我们有严格,具体的定义(即塞奇威克,高德纳,莫里森谁似乎都形容PATRICIA专门与分支消除单向前缀压缩二叉树); 和
- 然后,我们有那些相信术语形成,这似乎更像是他们打算用一个词像“地图”,“字典”或“线索”(均为实际松散定义,即的libCstd ++文档)一个松散的,模糊的定义。
我想我很担心我的资源的准确性。 据我所知,由于通过共同的前缀引入的问题,它不可能表示与只是N个节点树,而不呈现它作为二进制树(这似乎违背的libCstd ++文档点2和点4具有可变处理时-width键),并且没有通过渲染“叶节点”和“孩子”有点无效)的概念失去严格的单向分支概念(违反分3和4。 这两个功能协同工作,以消除困境,即“内部节点”,将导致这些树木使用超过N个节点(回忆:N项有N只节点)。
引用的这两组不能同时是正确的; 有太多的相互排斥。 当一个参考说PATRICIA是二进制的,另一个说,这可能不是,他们不能同时被认为是真实,正确,而这仅仅是一个矛盾的例子,我在这里看到。 以下哪个引用的是正确的?