Arbre de base
Un arbre de base de , le trie de Patricia de /arbre , ou l'arbre de peu de crit de est une structure de données réglée spécialisée basée sur le Trie qui est employé pour stocker un ensemble de cordes. Contrairement à un régulier Trie , les bords d'un trie de Patricia sont marqués avec des ordres des caractères plutôt qu'avec les caractères simples. Ceux-ci peuvent être les cordes des caractères, chaînes binaires telles que des nombres entiers ou des IP address ou des ordres généralement arbitraires des objets dans l'ordre lexicographique . Parfois l'arbre de base de de noms et l'arbre de peu de crit de sont seulement appliqués aux arbres stockant des nombres entiers et le trie de Patricia de est maintenu pour des entrées plus générales, mais les travaux de structure la même manière dans tous les cas.
Vue d'ensemble
L'arbre de base est le plus facile de comprendre comme arbre espace-optimisé où chaque noeud avec seulement un enfant est fusionné avec son enfant. Le résultat est que chaque noeud interne a au moins deux enfants. À la différence de dans des arbres, des bords peuvent être marqués avec des ordres des caractères aussi bien que les caractères simples. Ceci les rend beaucoup plus efficaces pour de petits ensembles (particulièrement si les cordes sont longues) et pour des ensembles de cordes qui partagent de longs préfixes.
Il soutient les opérations principales suivantes, qui sont O ( k ), où le k est la longueur maximum de toutes les cordes dans l'ensemble :
Consultation de
: Détermine si une corde est dans l'ensemble. Cette opération est identique aux essais sauf que quelques bords consomment les caractères multiples.
Insertion : Ajouter une corde à l'arbre. Nous recherchons l'arbre jusqu'à ce que nous ne puissions accomplir aucun autre progrès. En ce moment nous ou ajoutons un nouveau bord sortant marqué avec tous les caractères restants dans la corde d'entrée, ou s'il y a déjà un bord sortant partageant un préfixe avec de la corde restante d'entrée, nous la coupons en deux bords (d'abord marqué avec le préfixe commun) et procédons. Cette étape de division s'assure qu'aucun noeud n'a plus d'enfants que là sont les caractères possibles de corde.
Suppression : Supprimer une corde de l'arbre. D'abord, nous supprimons la feuille correspondante. Puis, si son parent a seulement un enfant rester, nous supprimons le parent et fusionnons les deux bords d'incident.
Prédécesseur de trouvaille : Localise la plus grande corde moins qu'une corde donnée, près d'ordre lexicographique.
Successeur de trouvaille : Localise la plus petite corde plus grande qu'une corde donnée, par ordre lexicographique.
Une prolongation commune des arbres de base emploie deux couleurs des noeuds, « noir » et « blanc ». Pour vérifier si une corde donnée est stockée dans l'arbre, la recherche commence à partir du dessus et suit les bords de la corde d'entrée jusqu'à ce qu'aucun autre progrès ne puisse être accompli. Si la rechercher-corde est consommée et le noeud final est un noeud noir, la recherche a échoué ; si elle est blanche, la recherche a réussi. Ceci nous permet d'ajouter une gamme étendue des cordes avec un préfixe commun à l'arbre, using les noeuds blancs, puis enlève un petit ensemble de " ; exceptions" ; d'une façon espace-efficace par le insérant ils using des noeuds noirs.
Applications
Comme mentionné, les arbres de base sont utiles pour construire les rangées associatives avec les clefs qui peuvent être exprimées comme cordes. Ils trouvent l'application particulière dans le secteur du cheminement d'IP , où la capacité de contenir les gammes étendues des valeurs à quelques exceptions est en particulier adaptée à l'organisation hiérarchique des IP address qu'elles sont également employées pour les index inversés des documents des textes dans le de recherche documentaire. l'arbre de base peut également être employé dans les dictionnaires.
Histoire
Le Donald R. Morrison a décrit la première fois ce qu'il a appelé " ; Tries" de Patricia ; dans le 1968 ; le nom vient du PATRICIA des acronymes , qui représente le " ; Algorithme pratique de pour rechercher l'information codée dans le " alphanumérique de ;. Gernot Gwehenberger a indépendamment inventé et a décrit la structure de données au temps à peu près identique. (MIR 03334569201 de Samee)
Comparaison à d'autres structures de données
(Dans les comparaisons suivantes, on le suppose que les clefs sont du k de longueur et de la structure de données contient des éléments du n .)
À la différence du les arbres équilibrés , arbres de base permettent la consultation, l'insertion, et la suppression dans le temps d'O ( k ) plutôt qu'O ( n de notation). Ceci ne semble pas comme un avantage, depuis normalement le &ge du k ; noter le n , mais dans un arbre équilibré chaque comparaison est une comparaison de corde ayant besoin de le temps des cas les pires d'O ( k ), beaucoup dont sont dans la pratique en raison lents de longs préfixes communs. Dans un trie, toutes les comparaisons ont besoin de le temps constant, mais il prend des comparaisons du m pour rechercher une corde du m de longueur. Les arbres de base peuvent effectuer ces opérations avec peu de comparaisons et exiger beaucoup de quelques noeuds.
Les arbres de base partagent également les inconvénients des essais, de quelque manière que : comme ils peuvent seulement être appliqués aux cordes des éléments ou des éléments avec un réversible traçant ( Bijection ) aux cordes, ils manquent de la pleine généralité des arbres équilibrés de recherche, qui s'appliquent efficacement à n'importe quel datatype avec un de commande total (par exemple, nombres à point mobile).
On dit que généralement les tables de brouillage s'attendent à O (1) les temps d'insertion et de suppression, mais ceci est seulement vrai en considérant comme étant le calcul du gâchis de la clef une opération constante de temps. Quand le hachage de la clef est tenu compte, les tables de brouillage se sont attendues à des temps d'insertion et de suppression d'O ( k ), mais prendront plus longtemps dans le des cas les pires selon la façon dont des collisions sont manipulées. Les arbres de base ont l'insertion des cas les pires et la suppression d'O ( k ). Les opérations de successeur/prédécesseur des arbres de base ne sont pas également mises en application par des tables de brouillage.
Variantes
Le Chapeau-trie est un algorithme basé par arbre de base qui fournit des récupérations basées par corde, et des itérations commandées. L'exécution est comparable aux tables de brouillage .| Random links: | Wintu | Edmund Whitelocke | SCINTILLEMENT | Fourche de Colin | Monticules d'ange | Árbol_de_la_raíz |