Advertisement
luca_mazz1

[ASD] RIC-IT 16/10/2017

Jan 16th, 2019
34
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.94 KB | None | 0 0
  1. ALGO_IT(T, a, b)
  2. curr=T, last=nextT= NIL,
  3. currA=a, currB=b, nextA= nextB= -1
  4. S_T=S_b= NIL
  5.  
  6. while(curr != NIL || S_T != NIL) do
  7. if (curr != NIL) then //NUOVA CHIAMATA
  8. if( curr->key >= currA && curr->key <= currB) then
  9. push(S_T, curr)
  10. push(S_b, currB)
  11. next= curr->sx //DISCESA A SX
  12. nextA= currA
  13. nextB= curr->key
  14. else
  15. CANCELLA_TREE(curr)
  16. ret= NIL //ISTRUZIONI CHE SIMULANO return T
  17. next= NIL
  18.  
  19. else
  20. curr= top(S_T)
  21. currB= top(S_b)
  22. if (last != curr->dx && curr->dx != NIL) then //STO TORNANDO DA SX
  23. curr->sx= ret
  24. next= curr->dx //PREPARO DISCESA A DX
  25. nextA= curr->key
  26. nextB= currB
  27. else
  28. pop(S_T)
  29. pop(S_b)
  30. if (curr->dx != NIL) then //STO TORNANDO DA DX
  31. curr->dx= ret
  32. else //SONO TORNATO DA SX MA IL DX E' NIL
  33. curr->dx= NIL
  34. ret= curr
  35. next= NIL
  36.  
  37. last=curr
  38. curr=next
  39. currA= nextA
  40. currB= nextB
  41.  
  42. return curr
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement