Étant donné un arbre de recherche binaire modifié, trouver kème élément le plus petit

voix
4

Supposons que dans un arbre binaire donné si chaque noeud contient nombre d'éléments enfants , quelle est la meilleure façon de trouver kème plus petit élément dans l'arbre?

S'il vous plaît noter que ce n'est pas BST régulière. Chaque noeud est contenant nombre d'élément enfant en dessous.

Créé 06/09/2011 à 13:56
source utilisateur
Dans d'autres langues...                            


3 réponses

voix
4

find_element(root, k)

    if(root.left.nchildren + 1 == k - 1) 
        return root;

    if(root.left.nchildren + 1 >= k)
        return find_element(root.left, k)             

    else 
        return find_element(root.right, k - (root.left.children + 1))
Créé 06/09/2011 à 14:04
source utilisateur

voix
0

Voilà ce que je suis:

find (root, k)
{
leftChildCount = root->left->n
rightChildCount = root->right->n

if (leftChildCount+1 == k)
  Print root node
else if (k< leftChildCount)
  Find(root->left,k)
else
  Find(root->right,k-leftChildCount)
}
Créé 06/09/2011 à 14:05
source utilisateur

voix
0

Traverse BST en afinde Manner de déplacement et des éléments à stocker tableau. Votre tableau est un tableau trié.

Créé 22/05/2013 à 20:15
source utilisateur

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more