Lorsqu'un noeud d'un arbre B est divisé, les clés du noeud d'origine sont-elles dupliquées dans les nouveaux noeuds? Quel est le but de faire cela? N'est-ce pas inefficace?Les clés des noeuds B-tree sont-elles dupliquées lorsque le noeud est divisé?
Répondre
Non, il est fait avec des pointeurs. La moitié des pointeurs sont déplacés vers le nouveau noeud.
Bien sûr, il n'y a pas une telle chose comme un 'B-tree'. Il existe une myriade d'implémentations différentes. Je pourrais imaginer un dans lequel les clés sont réellement stockées dans les noeuds, comme un arbre où les clés sont ints. Mais ils ne seraient toujours pas 'dupliqués', juste les données copiées.
Si votre boeuf est le stockage laissé dans le nœud qui obtient divisé, eh bien, c'est un autre choix d'optimisation que pour libérer et réallouer plus petite ou non. Probablement pas, car plus d'insertions pourraient arriver dans la moitié de l'espace clé de ce nœud.
Je pense que vous voulez dire un arbre B +.
Dans un arbre B + que je l'ai écrit, je l'ai fait double emploi avec les valeurs clés du nœud parent lors d'une scission. La clé [pos] dans le parent a été définie sur la valeur la plus basse du nœud gauche et pointée sur le nœud de gauche. La valeur la plus basse du noeud droit est devenue la clé [pos + 1] dans le parent.
- 1. Avantages de BTree + sur BTree
- 2. INSERT INTO..SELECT..ON clés dupliquées ids ambiguës
- 3. Les clés dupliquées dans App.Config ne lèvent pas d'exception
- 4. Solutions pour l'insertion de clés dupliquées
- 5. XPath. Sélectionner des noeuds en fonction d'un autre noeud lié
- 6. Fusionner 2 baies sans clés dupliquées
- 7. Comment compter le nombre de clés dupliquées dans un tableau?
- 8. xsl noeuds sélectine autres que le premier noeud
- 9. Supprimer des mots-clés spécifiques et des valeurs dupliquées dans les champs Excel
- 10. Berkeley DB: comparaison de préfixe btree pour les clés de type répertoire?
- 11. Modifications silencieuses des noeuds
- 12. XML: supprimer le noeud enfant d'un noeud
- 13. XPath: sélectionner tous les A noeuds et tous les noeuds B qui ne sont pas à l'intérieur d'un noeud A
- 14. Déplacer tous les enfants d'un noeud vers un autre noeud
- 15. Comment traverser un Btree?
- 16. Comment vérifier si le noeud racine treeview a des noeuds enfants ou non
- 17. mysql btree index sur les tables InnoDB?
- 18. Est-il possible d'ajouter des noeuds enfants aux noeuds personnalisés ajoutés?
- 19. Algorithme pour agréger les valeurs des noeuds enfant
- 20. ChampErreur lorsque annoter sur les clés étrangères
- 21. Comment est-ce que je déduplique une liste de noeuds dans XSLT - et renvoie le dernier noeud rencontré?
- 22. Sélection des noeuds en fonction des frères et soeurs critères de noeud en utilisant XSLT
- 23. traversée de pré-codeur d'un Btree
- 24. comment pour chaque noeud parent sélectionner tous les noeuds non premiers enfants dans un arbre avec plusieurs noeuds parents
- 25. Drupal: recherche des noeuds de commentaire et affichage des résultats avec les noeuds parents?
- 26. Actualiser le problème lorsque le noeud treeview a été modifié
- 27. javascript divisé
- 28. réglage des valeurs par défaut pour les noeuds vides
- 29. Qu'est-ce que xpath exact pour les premiers noeuds d'un noeud?
- 30. EntityManager.merge insère des entités dupliquées