Les arbres B et B + ne stockent que des données à leurs feuilles? Je suppose qu'ils utilisent leurs nœuds internes pour rechercher les données requises. P>
est que c'est le cas ou stockez-ils des données dans chaque nœud? p>
3 Réponses :
nœuds non-feuillets "enregistrements" contiennent p>
ces «enregistrements» non-feuille sont répertoriés dans l'ordre des touches afin que, en balayant (ou à la recherche binaire dans), un nœud non-feuille, on sait quel nœud au niveau suivant vers le bas peut em> contient le Valeur recherchée. P>
Les enregistrements de nœuds de feuilles contiennent des enregistrements de données complètes: la valeur clé et quoi que ce soit d'autre. p>
Par conséquent, les données "fortes>" réelles "ne sont contenues que dans les nœuds de feuilles, les nœuds non-feuilles ne contiennent que [une copie de] les valeurs de clé. pour une très petite proportion des données em> strud> (cette proportion dépend du nombre moyen d'enregistrements de données trouvés dans un nœud feuille). P>
Ceci est illustré dans l'image suivante du Article Wikipedia sur B + Arbres
Le nœud non-feuille, en haut, (le seul dans cet arborescence simpliste) ne contient que deux enregistrements de nœud non-feuillettes, chacun avec une copie d'une valeur de clé (couleur bleuâtre) et un pointeur sur le nœud correspondant. (couleur grise). Cet arborescence n'a que deux niveaux, donc les "enregistrements" dans le nœud racine pointent sur les nœuds de feuilles. On peut imaginer qu'il existe des niveaux supplémentaires (au-dessus de l'arbre supérieur illustré ci-dessous, appelez-le le "3-5 noeud"); Si tel était le cas, le nœud ci-dessus contiendrait (avec d'autres enregistrements similaires), un enregistrement avec une valeur de clé 3 avec un pointeur sur le nœud "3-5". Les nœuds de la feuille contiennent la valeur de la clé (en couleur bleuâtre aussi) et l'enregistrement de données correspondant (D1, D2 ... montré en gris). Le pointeur de Red-ISH montré à la fin de chaque nœud de la feuille sur le nœud de la feuille suivant, c'est-à-dire celui contenant l'enregistrement de données très suivant dans l'ordre clé; Ces pointeurs sont utiles pour "numériser" une gamme d'enregistrements de données. P> p>
Notez également que seules les valeurs de clé 3 et 5 sont contenues dans des nœuds non-feuillettes (c'est-à-dire que même toutes les valeurs de clé em> sont reproduites dans les nœuds non-feuilles).
BTW dans cet exemple, les nœuds non-feuilles contiennent la clé de l'enregistrement dernier em> dans le nœud suivant (fonctionnent également si l'enregistrement premier em> a été utilisé à la place, une légère différence dans le manière que la logique de recherche est ensuite implémentée). P>
Il y a une certaine confusion sur les arbres et les arbres B +. B + Arbres stockez uniquement les données sur les nœuds de feuilles comme des pointeurs. Cela signifie que les données doivent être stockées ailleurs. Btrees peut stocker des données sur chaque nœud. Il ya des avantages et des inconvénients pour chacun. J'ai remarqué que certains sites montrent des btrees exactement les mêmes que les arbres B +. En général, Btrees vaut mieux tenir les données réelles et les arbres B + sont beaucoup plus efficaces en tant qu'index. P>
B + arbres stocker uniquement les données dans la feuille. Les arbres B peuvent stocker des données dans des nœuds internes.