Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //STACK: T, x, ret
- ALGO(T,k){
- st,sx,sret=NIL;
- lt=NIL;
- ct=T;
- WHILE (ct!=NIL || lt!= NIL) DO
- IF (ct!=NIL) THEN
- ret=infinito;
- x=ct->k%2;
- st=PUSH(st,ct);
- sx=PUSH(sx,x);
- ct=ct->sx;
- ELSE
- ct=TOP(st);
- x=TOP(sx);
- IF (lt!=ct->dx && ct->dx!=NIL) THEN
- y=elem;
- IF (x=k%2) THEN
- ret=0;
- ELSE
- ret=y;
- sret=PUSH(sret,ret);
- ct=ct->dx;
- ELSE
- IF (ct->dx!=NIL) THEN
- z=elem;
- ret=top(sret);
- ELSE
- y=elem
- IF (x=k%2) THEN
- ret=0;
- ELSE
- ret=y;
- z=infinito;
- ret=MIN(ret,z)+1;
- elem=ret;
- st=POP(st);
- sx=POP(sx);
- sret=POP(sret);
- lt=ct;
- ct=NIL;
- return elem;
- }
- DUBBI: serve lo stack per RET? e come gestirlo?
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement