Adott egy módosított bináris keresési fát, meg k'th legkisebb eleme

szavazat
4

Tegyük fel, hogy egy adott bináris fa , ha minden csomópont tartalmaz gyermekelemek száma , akkor mi a legjobb módja, hogy megtalálják k'th legkisebb eleme a fán?

Felhívjuk figyelmét, hogy ez nem szabályos BST. Minden csomópont, amely több gyermek elem alatta.

A kérdést 06/09/2011 13:56
a forrás felhasználó
Más nyelveken...                            


3 válasz

szavazat
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))
Válaszolt 06/09/2011 14:04
a forrás felhasználó

szavazat
0

Ez az, amit kaptam:

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)
}
Válaszolt 06/09/2011 14:05
a forrás felhasználó

szavazat
0

Traverse BST a Inorder elmozdulási módon és tárolja elemeket tömb. A tömb egy rendezett tömbben.

Válaszolt 22/05/2013 20:15
a forrás felhasználó

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