Advertisement
daniele2013

esercizio heap asd luglio

Jul 21st, 2014
194
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.20 KB | None | 0 0
  1. ListaHeap( T, k )
  2.     L = {}
  3.     if T != nil then
  4.         [Esercizio A] L = Lista( T, k, L )
  5.         [Esercizio B] L = Lista( T, k, L, 0 )
  6.     |_
  7.     return L
  8. |_
  9.  
  10. CancellaHeap( T )
  11.     if T != nil then
  12.         if T->sx != nil and T->dx != nil then
  13.             if T->sx->key > T->dx->key then
  14.                 T->key = T->sx->key
  15.                 T->sx = CancellaHeap( T->sx )
  16.             else
  17.                 T->key = T->dx->key
  18.                 T->dx = CancellaHeap( T->dx )
  19.             |_
  20.         elseif T->sx != nil then
  21.             T->key = T->sx->key
  22.             T->sx = CancellaHeap( T->sx )
  23.         elseif T->dx != nil then
  24.             T->key = T->dx->key
  25.             T->dx = CancellaHeap( T->dx )
  26.         else
  27.             delete T
  28.             T = nil
  29.         |_
  30.     |_
  31.     return T
  32. |_
  33.  
  34. Lista( T, k, L )
  35.     if T != nil then
  36.         if T->key < k then
  37.             if T->key % 2 == 0 then
  38.                 L = addCoda( L, T->key )
  39.             |_
  40.             T = CancellaHeap( T, nil )
  41.             L = Lista( T, k, L )
  42.         |_
  43.     |_
  44.     return L
  45. |_
  46.  
  47. Lista( T, k, L, max )
  48.     if T != nil then
  49.         max = findMax( T, k, max )
  50.         if max != -1 then
  51.             if max % 2 == 0 then
  52.                 L = addCoda( L, max )
  53.             |_
  54.             L = Lista( T, k, L, max )
  55.         |_
  56.     |_
  57.     return L
  58. |_
  59.  
  60. findMax( T, k, min )
  61.     if T != nil then
  62.         if T->key < K then
  63.             return T->key
  64.         else
  65.             return Max{ findMax( T->sx, k, min ), findMax( T->dx, k, min ) }
  66.         |_
  67.     |_
  68.     return -1
  69. |_
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement