Difference between revisions of "Partição pela k-ésima Menor Chave (BST)"

From Wiki**3

 
Line 1: Line 1:
A função <code></code> coloca a k-ésima menor chave da BST na raiz. O índice da menor chave é 0 (zero).
+
A função <code></code> coloca a k-ésima menor chave da BST na raiz. O índice da menor chave é 0 (zero). <code>rotL</code> e <code>rotR</code> correspondem às [[Operações de Rotação sobre Árvores Binárias|operações de rotação]] à esquerda e à direita sobre árvores binárias.
  
 
   link '''partR'''(link h, int k) {
 
   link '''partR'''(link h, int k) {

Revision as of 09:00, 19 May 2005

A função coloca a k-ésima menor chave da BST na raiz. O índice da menor chave é 0 (zero). rotL e rotR correspondem às operações de rotação à esquerda e à direita sobre árvores binárias.

 link partR(link h, int k) {
   int t = h->l->N; 
   if (t > k) {
     h->l = partR(h->l, k);
     h    = rotR(h);
   }
   if (t < k) {
     h->r = partR(h->r, k-t-1);
     h    = rotL(h);
   }
   return h;
 }