BST, constatation suivante la plus élevée
Dans la STB, selon la Programmation des Entretiens Exposés
"Étant donné un nœud, vous pouvez même trouver le meilleur nœud en O(log(n)) de temps" Pg 65
Un nœud dans le BST a le droit de l'enfant que le prochain plus de nœud, alors pourquoi O(log(n))? Merci de corriger
D'abord répondre à la question, puis le nier
- Que faire si il n'a pas un droit de l'enfant?
- quel est le sens de la suivante la plus élevée selon vous?
- Probablement le prochain plus grand / plus grand nœud.
- Alors, je ne sais pas..il y a beaucoup de cas possible, avez-vous nier la question?
- Probablement un doublon de Afin Successeur dans l'Arbre de Recherche Binaires
Vous devez vous connecter pour publier un commentaire.
"Un nœud dans le BST a le droit de l'enfant que le prochain plus de nœud" (en supposant ici "suivant le plus élevé" signifie que le prochain plus grande valeur) - non, il ne le fait pas. Que peut être le cas si elle n'a pas de nœud de gauche, mais il n'est pas toujours le cas (voir point 1 ci-dessous).
La prochaine plus grande valeur (utiliser ce terme plutôt que "le plus haut" puisque cette dernière pourrait être confondue avec la hauteur de l'arbre) la valeur vient de l'un des deux endroits:
D'abord, si le nœud actuel dispose d'un droit de l'enfant, déplacer pour que le droit de l'enfant, alors, aussi longtemps que vous pouvez voir à gauche de l'enfant, elle s'.
En d'autres termes (S et D sont la source et la destination):
Autre (le nœud actuel a pas droit de l'enfant) vous avez besoin de se déplacer à la mère en continu (donc les nœuds besoin d'un de droite, de gauche et de parent pointeur) jusqu'à ce que le nœud que vous avez déplacé de était à gauche de l'enfant. Si vous arrivez à la racine et vous encore n'ai pas passé de la gauche de l'enfant, votre nœud d'origine était déjà le plus haut dans l'arbre. Graphiquement ce serait:
Le pseudo-code pour une telle fonction serait:
Puisque l'effort est proportionnel à la hauteur de l'arbre, un équilibré arbre (comme le rouge-noir, 2-3-4 et AVL) a une complexité temporelle en O(log N) étant donné que la hauteur a un logN relation avec le nombre d'éléments. Le livre est en train de parler au sujet de la balance des arbres ici, car il inclut des extraits de propos comme:
Ainsi, même s'il admet dans cette dernière citation que BST peut pas être équilibré, le O(log N) la propriété est uniquement pour les variantes que sont.
Pour les non-équilibrée des arbres, de la complexité (pire des cas) serait en O(n) comme on pourrait dégénérer arbres comme:
depth
est O(log N). Lorsque vous cherchez le nœud suivant, vous allez à la plupart desdepth
fois et puis vous allez à la plupart desdepth
fois en bas - qui, lorsqu'il est réparti, conduit à O(log N).Voici mon pseudo mise en œuvre en Java. Espérons que cela aide.
Structure de Nœud
Fonction pour trouver la plus élevée
Je pense que Nous pouvons trouver le plus proche du nœud simplement de trouver le Afinde Successeur du nœud.
Étapes -