declare proc {DFS T} fun {TreeInsert S T} if T\=leaf then T|S else S end end proc {DFSStack S1} case S1 of nil then skip [] X|S2 then tree(Key Val L R)=X in {Browse Key#Val} {DFSStack {TreeInsert {TreeInsert S2 R} L}} end end in {DFSStack {TreeInsert nil T}} end