Advertisement
Guest User

Untitled

a guest
Oct 16th, 2019
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.74 KB | None | 0 0
  1. //STACK: T, x, ret
  2.  
  3. ALGO(T,k){
  4. st,sx,sret=NIL;
  5. lt=NIL;
  6. ct=T;
  7. WHILE (ct!=NIL || lt!= NIL) DO
  8. IF (ct!=NIL) THEN
  9. ret=infinito;
  10. x=ct->k%2;
  11. st=PUSH(st,ct);
  12. sx=PUSH(sx,x);
  13. ct=ct->sx;
  14. ELSE
  15. ct=TOP(st);
  16. x=TOP(sx);
  17. IF (lt!=ct->dx && ct->dx!=NIL) THEN
  18. y=elem;
  19. IF (x=k%2) THEN
  20. ret=0;
  21. ELSE
  22. ret=y;
  23. sret=PUSH(sret,ret);
  24. ct=ct->dx;
  25. ELSE
  26. IF (ct->dx!=NIL) THEN
  27. z=elem;
  28. ret=top(sret);
  29. ELSE
  30. y=elem
  31. IF (x=k%2) THEN
  32. ret=0;
  33. ELSE
  34. ret=y;
  35. z=infinito;
  36. ret=MIN(ret,z)+1;
  37. elem=ret;
  38. st=POP(st);
  39. sx=POP(sx);
  40. sret=POP(sret);
  41. lt=ct;
  42. ct=NIL;
  43. return elem;
  44. }
  45.  
  46. DUBBI: serve lo stack per RET? e come gestirlo?
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement