Bei einem modifizierten binären Suchbaum, finden K-ten kleinstes Element

stimmen
4

Angenommen , in einem bestimmten binären Baum , wenn jeder Knoten Anzahl der untergeordneten Elemente enthält , was ist dann der optimale Weg k - ten kleinstes Element im Baum zu finden?

Bitte beachten Sie, diese nicht regelmäßig BST ist. Jeder Knoten ist enthaltende Anzahl von Kind-Element unter ihm.

Veröffentlicht am 06/09/2011 um 13:56
quelle vom benutzer
In anderen Sprachen...                            


3 antworten

stimmen
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))
Beantwortet am 06/09/2011 um 14:04
quelle vom benutzer

stimmen
0

Das ist, was ich habe:

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)
}
Beantwortet am 06/09/2011 um 14:05
quelle vom benutzer

stimmen
0

Traverse BST in inOrder traverse Weise und Speicherelemente - Array. Ihr Array ist ein sortiertes Array.

Beantwortet am 22/05/2013 um 20:15
quelle vom benutzer

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