Advertisement
Giuliox

18/07/17 Traccia 2 Eserc. 2

Jan 12th, 2018
250
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.46 KB | None | 0 0
  1. Algo(T,h)
  2. ret, St, Sh, Sir
  3. currT=T, currh = h, ir= 0
  4. ret=-1,s=0,d=0
  5. while currT != Nil or St != Nil do
  6. if ir == 0 then
  7. ret = -1, s=0, d=0
  8. if currT != Nil then
  9. if currT->sx != Nil then
  10. push(St, currT)
  11. currT = currT->sx
  12. push(Sh, h)
  13. h++
  14. push(Sir, 1)
  15. else if (currT->dx != Nil)
  16. push(St, currT)
  17. currT = currT->dx
  18. push(Sh, h)
  19. h++
  20. push(Sir, 2)
  21. else if s==0 and d==0 then
  22. ret = h
  23. currT = Top(St)
  24. pop(St)
  25. h= Top(Sh)
  26. pop(Sh)
  27. ir = Top(Sir)
  28. pop(Sir)
  29. else
  30. ret = s+d
  31. currT = Top(St)
  32. pop(St)
  33. h= Top(Sh)
  34. pop(Sh)
  35. ir = Top(Sir)
  36. pop(Sir)
  37. else
  38. currT = Top(St)
  39. pop(St)
  40. h= Top(Sh)
  41. pop(Sh)
  42. ir = Top(Sir)
  43. pop(Sir)
  44. else if ir == 1 then
  45. s = ret
  46. if (currT->dx != Nil)
  47. currT = currT->dx
  48. pop(Sir)
  49. push(Sir, 2)
  50. ir=0
  51. else if s==0 and d==0 then
  52. ret = h
  53. currT = Top(St)
  54. pop(St)
  55. h= Top(Sh)
  56. pop(Sh)
  57. ir = Top(Sir)
  58. pop(Sir)
  59. else
  60. ret = s+d
  61. currT = Top(St)
  62. pop(St)
  63. h= Top(Sh)
  64. pop(Sh)
  65. ir = Top(Sir)
  66. pop(Sir)
  67. else if ir == 2 then
  68. d=ret
  69. if s==0 and d==0 then
  70. ret = h
  71. currT = Top(St)
  72. pop(St)
  73. h= Top(Sh)
  74. pop(Sh)
  75. ir = Top(Sir)
  76. pop(Sir)
  77. else
  78. ret = s+d
  79. currT = Top(St)
  80. pop(St)
  81. h= Top(Sh)
  82. pop(Sh)
  83. ir = Top(Sir)
  84. pop(Sir)
  85. return ret
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement