Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Algo(T,h)
- ret, St, Sh, Sir
- currT=T, currh = h, ir= 0
- ret=-1,s=0,d=0
- while currT != Nil or St != Nil do
- if ir == 0 then
- ret = -1, s=0, d=0
- if currT != Nil then
- if currT->sx != Nil then
- push(St, currT)
- currT = currT->sx
- push(Sh, h)
- h++
- push(Sir, 1)
- else if (currT->dx != Nil)
- push(St, currT)
- currT = currT->dx
- push(Sh, h)
- h++
- push(Sir, 2)
- else if s==0 and d==0 then
- ret = h
- currT = Top(St)
- pop(St)
- h= Top(Sh)
- pop(Sh)
- ir = Top(Sir)
- pop(Sir)
- else
- ret = s+d
- currT = Top(St)
- pop(St)
- h= Top(Sh)
- pop(Sh)
- ir = Top(Sir)
- pop(Sir)
- else
- currT = Top(St)
- pop(St)
- h= Top(Sh)
- pop(Sh)
- ir = Top(Sir)
- pop(Sir)
- else if ir == 1 then
- s = ret
- if (currT->dx != Nil)
- currT = currT->dx
- pop(Sir)
- push(Sir, 2)
- ir=0
- else if s==0 and d==0 then
- ret = h
- currT = Top(St)
- pop(St)
- h= Top(Sh)
- pop(Sh)
- ir = Top(Sir)
- pop(Sir)
- else
- ret = s+d
- currT = Top(St)
- pop(St)
- h= Top(Sh)
- pop(Sh)
- ir = Top(Sir)
- pop(Sir)
- else if ir == 2 then
- d=ret
- if s==0 and d==0 then
- ret = h
- currT = Top(St)
- pop(St)
- h= Top(Sh)
- pop(Sh)
- ir = Top(Sir)
- pop(Sir)
- else
- ret = s+d
- currT = Top(St)
- pop(St)
- h= Top(Sh)
- pop(Sh)
- ir = Top(Sir)
- pop(Sir)
- return ret
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement