Având în vedere o căutare arbore binar modificat, găsi k'th mai mic element

voturi
4

Să presupunem că într - un arbore binar dat în cazul în care fiecare nod conține numărul de elemente copil , atunci ceea ce este modul optim de a găsi cel mai mic element k'th în copac?

Vă rugăm să rețineți acest lucru nu este BST regulat. Fiecare nod este conține numărul de elemente copil sub ea.

Întrebat 06/09/2011 la 13:56
sursa de către utilizator
În alte limbi...                            


3 răspunsuri

voturi
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))
Publicat 06/09/2011 la 14:04
sursa de către utilizator

voturi
0

Aceasta este ceea ce am primit:

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)
}
Publicat 06/09/2011 la 14:05
sursa de către utilizator

voturi
0

Traverse BST în inordine traversa maniera și stoca elemente la matrice. Matrice dvs. este o matrice de sortat.

Publicat 22/05/2013 la 20:15
sursa de către utilizator

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