type Baummod = record
                  MeinBaum : PBaum;
		  fertig   : Boolean;
		end;
     PBaummod = ^Baummod;
     TStack = array[1..1000] of PBaummod;
 
var Stack : TStack;
    oben  : Integer;



function is_empty : Boolean;
begin
  is_empty := (oben = 0);
end;

function pop : PBaummod;

begin
  If is_empty
  then pop := NIL
  else begin 
         pop := stack[oben]; 
	 Dec(Oben); 
       End;
end;

procedure push(Element : PBaummod);

begin
  Inc(oben);
  Stack[oben] := Element;
end;

procedure inorder_it(Baum : PBaum);

var q : PBaummod;
    p : PBaummod;
begin
  oben := 0;
  new(q);
  q^.MeinBaum := Baum;
  q^.fertig := false;
  push (q);
  q := pop;
  repeat
    if q^.fertig
    then Write(q^.MeinBaum^.Wert:2)
    else begin
           q^.fertig := true;
	   if q^.MeinBaum^.Rechts <> NIL
	   then begin
	          new(p);
		  p^.MeinBaum := q^.MeinBaum^.Rechts;
		  push(p);
		end;
           push(q);
	   if q^.MeinBaum^.Links <> NIL
	   then begin
	          new(p);
		  p^.MeinBaum := q^.MeinBaum^.Links;
		  push(p);
		end
         end;
    q := pop;
  until q = NIL;
end;