Ich lerne etwas über Radix-Bäume (aka komprimierte Versuche) und Patricia-Versuche, finde aber widersprüchliche Informationen darüber, ob sie tatsächlich gleich sind oder nicht. Ein Radix-Baum kann aus einem normalen (nicht komprimierten) Versuch erhalten werden, indem Knoten mit ihren Eltern zusammengeführt werden, wenn die Knoten das einzige Kind sind. Dies gilt auch für Patricia Versuche. Inwiefern unterscheiden sich die beiden Datenstrukturen?
Zum Beispiel listet NIST die beiden als gleich auf:
Patricia Baum
(Datenstruktur)
Definition: Eine kompakte Darstellung eines Versuchs, bei dem jeder Knoten, der ein einziges untergeordnetes Element ist, mit seinem übergeordneten Element zusammengeführt wird.
Auch als Radixbaum bekannt.
Viele Quellen im Internet behaupten dasselbe. Anscheinend handelt es sich bei Patricia-Versuchen jedoch um einen speziellen Fall von Radix-Bäumen. Wikipedia- Eintrag sagt:
PATRICIA-Versuche sind Radix-Versuche mit Radix gleich 2, was bedeutet, dass jedes Bit des Schlüssels einzeln verglichen wird und jeder Knoten ein Zwei-Wege-Zweig (dh Links-Rechts-Zweig) ist.
Ich verstehe das nicht wirklich. Ist der Unterschied nur in der Art und Weise, wie Vergleiche beim Nachschlagen durchgeführt werden? Wie kann jeder Knoten eine "bidirektionale Verzweigung" sein? Sollte es ALPHABET_SIZE
für einen bestimmten Knoten nicht höchstens mögliche Verzweigungen geben?
Kann das jemand klären? Werden Radix-Versuche aus praktischen Gründen normalerweise als Patricia-Versuche implementiert (und werden sie daher häufig als gleich angesehen)? Oder können solche Verallgemeinerungen nicht gemacht werden?
quelle