我已经部分实现了Patricia Trie,它仍然没有完成,因为它缺少用于从Trie中删除节点的删除/删除功能,我发现this article描述了结构,在C ++中有一个实现,有一个删除/删除功能,但我无法弄清楚实现背后的想法。
如何从Trie中删除节点并将Trie保持在正确的状态?
答案 0 :(得分:1)
我最近在C中实现了PATRICIA。为了删除一个节点,找到一个向下指向trie的下行节点到受害者(这可能是受害者节点本身。)
一旦找到,如果受害者节点不是后向引用者,则用其引用者切换受害者。这使受害者接近成为“叶子”节点,其后向引用将是自己的。那么删除非常简单。