procedure percpreordem(a: tptno); var q: tptno; p: tpilha; begin inicializa(p); empilhar(p,a); while...

Post on 18-Apr-2015

105 Views

Category:

Documents

1 Downloads

Preview:

Click to see full reader

TRANSCRIPT

procedure PercPreOrdem(a: tPtNo); var    q: tPtNo;    P: tPilha; begin    Inicializa(P);    Empilhar(P,a);    while not PilhaVazia(P) do    begin        q:= Topo(P);        Desempilhar(P);        if q <> nil then        begin            Visita(q);            Empilhar(P,q^.dir);            Empilhar(P,q^.esq);        end;    end; end;

Visão esquemática da memória

a

procedure PercPreOrdem(a: tPtNo); var    q: tPtNo;    P: tPilha; begin    Inicializa(P);    Empilhar(P,a);    while not PilhaVazia(P) do    begin        q:= Topo(P);        Desempilhar(P);        if q <> nil then        begin            Visita(q);            Empilhar(P,q^.dir);            Empilhar(P,q^.esq);        end;    end; end;

Visão esquemática da memória

aq

procedure PercPreOrdem(a: tPtNo); var    q: tPtNo;    P: tPilha; begin    Inicializa(P);    Empilhar(P,a);    while not PilhaVazia(P) do    begin        q:= Topo(P);        Desempilhar(P);        if q <> nil then        begin            Visita(q);            Empilhar(P,q^.dir);            Empilhar(P,q^.esq);        end;    end; end;

Visão esquemática da memória

a

topo elem

P

q

procedure PercPreOrdem(a: tPtNo); var    q: tPtNo;    P: tPilha; begin    Inicializa(P);    Empilhar(P,a);    while not PilhaVazia(P) do    begin        q:= Topo(P);        Desempilhar(P);        if q <> nil then        begin            Visita(q);            Empilhar(P,q^.dir);            Empilhar(P,q^.esq);        end;    end; end;

Visão esquemática da memória

a

topo elem

P

q

0

procedure PercPreOrdem(a: tPtNo); var    q: tPtNo;    P: tPilha; begin    Inicializa(P);    Empilhar(P,a);    while not PilhaVazia(P) do    begin        q:= Topo(P);        Desempilhar(P);        if q <> nil then        begin            Visita(q);            Empilhar(P,q^.dir);            Empilhar(P,q^.esq);        end;    end; end;

Visão esquemática da memória

a

topo elem

P

q

1

procedure PercPreOrdem(a: tPtNo); var    q: tPtNo;    P: tPilha; begin    Inicializa(P);    Empilhar(P,a);    while not PilhaVazia(P) do    begin        q:= Topo(P);        Desempilhar(P);        if q <> nil then        begin            Visita(q);            Empilhar(P,q^.dir);            Empilhar(P,q^.esq);        end;    end; end;

Visão esquemática da memória

a

topo elem

P

q

1

procedure PercPreOrdem(a: tPtNo); var    q: tPtNo;    P: tPilha; begin    Inicializa(P);    Empilhar(P,a);    while not PilhaVazia(P) do    begin        q:= Topo(P);        Desempilhar(P);        if q <> nil then        begin            Visita(q);            Empilhar(P,q^.dir);            Empilhar(P,q^.esq);        end;    end; end;

Visão esquemática da memória

a

topo elem

P

q

1

procedure PercPreOrdem(a: tPtNo); var    q: tPtNo;    P: tPilha; begin    Inicializa(P);    Empilhar(P,a);    while not PilhaVazia(P) do    begin        q:= Topo(P);        Desempilhar(P);        if q <> nil then        begin            Visita(q);            Empilhar(P,q^.dir);            Empilhar(P,q^.esq);        end;    end; end;

Visão esquemática da memória

a

topo elem

P

q

0

procedure PercPreOrdem(a: tPtNo); var    q: tPtNo;    P: tPilha; begin    Inicializa(P);    Empilhar(P,a);    while not PilhaVazia(P) do    begin        q:= Topo(P);        Desempilhar(P);        if q <> nil then        begin            Visita(q);            Empilhar(P,q^.dir);            Empilhar(P,q^.esq);        end;    end; end;

Visão esquemática da memória

a

topo elem

P

q

0

procedure PercPreOrdem(a: tPtNo); var    q: tPtNo;    P: tPilha; begin    Inicializa(P);    Empilhar(P,a);    while not PilhaVazia(P) do    begin        q:= Topo(P);        Desempilhar(P);        if q <> nil then        begin            Visita(q);            Empilhar(P,q^.dir);            Empilhar(P,q^.esq);        end;    end; end;

Visão esquemática da memória

a

topo elem

P

q

0

A B D E C F G

O módulo Visita(q) simplesmente executaráWriteln(q^.dado);

exibindo, portanto, o conteúdo do nó apontado pelo “ponteiro de trabalho”

procedure PercPreOrdem(a: tPtNo); var    q: tPtNo;    P: tPilha; begin    Inicializa(P);    Empilhar(P,a);    while not PilhaVazia(P) do    begin        q:= Topo(P);        Desempilhar(P);        if q <> nil then        begin            Visita(q);            Empilhar(P,q^.dir);            Empilhar(P,q^.esq);        end;    end; end;

Visão esquemática da memória

a

topo elem

P

q

0

A B D E C F G

procedure PercPreOrdem(a: tPtNo); var    q: tPtNo;    P: tPilha; begin    Inicializa(P);    Empilhar(P,a);    while not PilhaVazia(P) do    begin        q:= Topo(P);        Desempilhar(P);        if q <> nil then        begin            Visita(q);            Empilhar(P,q^.dir);            Empilhar(P,q^.esq);        end;    end; end;

Visão esquemática da memória

a

topo elem

P

q

1

A B D E C F G

procedure PercPreOrdem(a: tPtNo); var    q: tPtNo;    P: tPilha; begin    Inicializa(P);    Empilhar(P,a);    while not PilhaVazia(P) do    begin        q:= Topo(P);        Desempilhar(P);        if q <> nil then        begin            Visita(q);            Empilhar(P,q^.dir);            Empilhar(P,q^.esq);        end;    end; end;

Visão esquemática da memória

a

topo elem

P

q

2

A B D E C F G

procedure PercPreOrdem(a: tPtNo); var    q: tPtNo;    P: tPilha; begin    Inicializa(P);    Empilhar(P,a);    while not PilhaVazia(P) do    begin        q:= Topo(P);        Desempilhar(P);        if q <> nil then        begin            Visita(q);            Empilhar(P,q^.dir);            Empilhar(P,q^.esq);        end;    end; end;

Visão esquemática da memória

a

topo elem

P

q

2

A B D E C F G

procedure PercPreOrdem(a: tPtNo); var    q: tPtNo;    P: tPilha; begin    Inicializa(P);    Empilhar(P,a);    while not PilhaVazia(P) do    begin        q:= Topo(P);        Desempilhar(P);        if q <> nil then        begin            Visita(q);            Empilhar(P,q^.dir);            Empilhar(P,q^.esq);        end;    end; end;

Visão esquemática da memória

a

topo elem

P

q

2

A B D E C F G

procedure PercPreOrdem(a: tPtNo); var    q: tPtNo;    P: tPilha; begin    Inicializa(P);    Empilhar(P,a);    while not PilhaVazia(P) do    begin        q:= Topo(P);        Desempilhar(P);        if q <> nil then        begin            Visita(q);            Empilhar(P,q^.dir);            Empilhar(P,q^.esq);        end;    end; end;

Visão esquemática da memória

a

topo elem

P

q

2

A B D E C F G

procedure PercPreOrdem(a: tPtNo); var    q: tPtNo;    P: tPilha; begin    Inicializa(P);    Empilhar(P,a);    while not PilhaVazia(P) do    begin        q:= Topo(P);        Desempilhar(P);        if q <> nil then        begin            Visita(q);            Empilhar(P,q^.dir);            Empilhar(P,q^.esq);        end;    end; end;

Visão esquemática da memória

a

topo elem

P

q

2

A B D E C F G

procedure PercPreOrdem(a: tPtNo); var    q: tPtNo;    P: tPilha; begin    Inicializa(P);    Empilhar(P,a);    while not PilhaVazia(P) do    begin        q:= Topo(P);        Desempilhar(P);        if q <> nil then        begin            Visita(q);            Empilhar(P,q^.dir);            Empilhar(P,q^.esq);        end;    end; end;

Visão esquemática da memória

a

topo elem

P

q

1

A B D E C F G

procedure PercPreOrdem(a: tPtNo); var    q: tPtNo;    P: tPilha; begin    Inicializa(P);    Empilhar(P,a);    while not PilhaVazia(P) do    begin        q:= Topo(P);        Desempilhar(P);        if q <> nil then        begin            Visita(q);            Empilhar(P,q^.dir);            Empilhar(P,q^.esq);        end;    end; end;

Visão esquemática da memória

a

topo elem

P

q

1

A B D E C F G

procedure PercPreOrdem(a: tPtNo); var    q: tPtNo;    P: tPilha; begin    Inicializa(P);    Empilhar(P,a);    while not PilhaVazia(P) do    begin        q:= Topo(P);        Desempilhar(P);        if q <> nil then        begin            Visita(q);            Empilhar(P,q^.dir);            Empilhar(P,q^.esq);        end;    end; end;

Visão esquemática da memória

a

topo elem

P

q

1

A B D E C F G

procedure PercPreOrdem(a: tPtNo); var    q: tPtNo;    P: tPilha; begin    Inicializa(P);    Empilhar(P,a);    while not PilhaVazia(P) do    begin        q:= Topo(P);        Desempilhar(P);        if q <> nil then        begin            Visita(q);            Empilhar(P,q^.dir);            Empilhar(P,q^.esq);        end;    end; end;

Visão esquemática da memória

a

topo elem

P

q

2

A B D E C F G

procedure PercPreOrdem(a: tPtNo); var    q: tPtNo;    P: tPilha; begin    Inicializa(P);    Empilhar(P,a);    while not PilhaVazia(P) do    begin        q:= Topo(P);        Desempilhar(P);        if q <> nil then        begin            Visita(q);            Empilhar(P,q^.dir);            Empilhar(P,q^.esq);        end;    end; end;

Visão esquemática da memória

a

topo elem

P

q

3

A B D E C F G

procedure PercPreOrdem(a: tPtNo); var    q: tPtNo;    P: tPilha; begin    Inicializa(P);    Empilhar(P,a);    while not PilhaVazia(P) do    begin        q:= Topo(P);        Desempilhar(P);        if q <> nil then        begin            Visita(q);            Empilhar(P,q^.dir);            Empilhar(P,q^.esq);        end;    end; end;

Visão esquemática da memória

a

topo elem

P

q

3

A B D E C F G

procedure PercPreOrdem(a: tPtNo); var    q: tPtNo;    P: tPilha; begin    Inicializa(P);    Empilhar(P,a);    while not PilhaVazia(P) do    begin        q:= Topo(P);        Desempilhar(P);        if q <> nil then        begin            Visita(q);            Empilhar(P,q^.dir);            Empilhar(P,q^.esq);        end;    end; end;

Visão esquemática da memória

a

topo elem

P

q

3

A B D E C F G

procedure PercPreOrdem(a: tPtNo); var    q: tPtNo;    P: tPilha; begin    Inicializa(P);    Empilhar(P,a);    while not PilhaVazia(P) do    begin        q:= Topo(P);        Desempilhar(P);        if q <> nil then        begin            Visita(q);            Empilhar(P,q^.dir);            Empilhar(P,q^.esq);        end;    end; end;

Visão esquemática da memória

a

topo elem

P

q

3

A B D E C F G

procedure PercPreOrdem(a: tPtNo); var    q: tPtNo;    P: tPilha; begin    Inicializa(P);    Empilhar(P,a);    while not PilhaVazia(P) do    begin        q:= Topo(P);        Desempilhar(P);        if q <> nil then        begin            Visita(q);            Empilhar(P,q^.dir);            Empilhar(P,q^.esq);        end;    end; end;

Visão esquemática da memória

a

topo elem

P

q

3

A B D E C F G

procedure PercPreOrdem(a: tPtNo); var    q: tPtNo;    P: tPilha; begin    Inicializa(P);    Empilhar(P,a);    while not PilhaVazia(P) do    begin        q:= Topo(P);        Desempilhar(P);        if q <> nil then        begin            Visita(q);            Empilhar(P,q^.dir);            Empilhar(P,q^.esq);        end;    end; end;

Visão esquemática da memória

a

topo elem

P

q

2

A B D E C F G

procedure PercPreOrdem(a: tPtNo); var    q: tPtNo;    P: tPilha; begin    Inicializa(P);    Empilhar(P,a);    while not PilhaVazia(P) do    begin        q:= Topo(P);        Desempilhar(P);        if q <> nil then        begin            Visita(q);            Empilhar(P,q^.dir);            Empilhar(P,q^.esq);        end;    end; end;

Visão esquemática da memória

a

topo elem

P

q

2

A B D E C F G

procedure PercPreOrdem(a: tPtNo); var    q: tPtNo;    P: tPilha; begin    Inicializa(P);    Empilhar(P,a);    while not PilhaVazia(P) do    begin        q:= Topo(P);        Desempilhar(P);        if q <> nil then        begin            Visita(q);            Empilhar(P,q^.dir);            Empilhar(P,q^.esq);        end;    end; end;

Visão esquemática da memória

a

topo elem

P

q

2

A B D E C F G

procedure PercPreOrdem(a: tPtNo); var    q: tPtNo;    P: tPilha; begin    Inicializa(P);    Empilhar(P,a);    while not PilhaVazia(P) do    begin        q:= Topo(P);        Desempilhar(P);        if q <> nil then        begin            Visita(q);            Empilhar(P,q^.dir);            Empilhar(P,q^.esq);        end;    end; end;

Visão esquemática da memória

a

topo elem

P

q

3

A B D E C F G

/

procedure PercPreOrdem(a: tPtNo); var    q: tPtNo;    P: tPilha; begin    Inicializa(P);    Empilhar(P,a);    while not PilhaVazia(P) do    begin        q:= Topo(P);        Desempilhar(P);        if q <> nil then        begin            Visita(q);            Empilhar(P,q^.dir);            Empilhar(P,q^.esq);        end;    end; end;

Visão esquemática da memória

a

topo elem

P

q

4

A B D E C F G

//

procedure PercPreOrdem(a: tPtNo); var    q: tPtNo;    P: tPilha; begin    Inicializa(P);    Empilhar(P,a);    while not PilhaVazia(P) do    begin        q:= Topo(P);        Desempilhar(P);        if q <> nil then        begin            Visita(q);            Empilhar(P,q^.dir);            Empilhar(P,q^.esq);        end;    end; end;

Visão esquemática da memória

a

topo elem

P

q

4

A B D E C F G

//

procedure PercPreOrdem(a: tPtNo); var    q: tPtNo;    P: tPilha; begin    Inicializa(P);    Empilhar(P,a);    while not PilhaVazia(P) do    begin        q:= Topo(P);        Desempilhar(P);        if q <> nil then        begin            Visita(q);            Empilhar(P,q^.dir);            Empilhar(P,q^.esq);        end;    end; end;

Visão esquemática da memória

a

topo elem

P

q

4

A B D E C F G

//

procedure PercPreOrdem(a: tPtNo); var    q: tPtNo;    P: tPilha; begin    Inicializa(P);    Empilhar(P,a);    while not PilhaVazia(P) do    begin        q:= Topo(P);        Desempilhar(P);        if q <> nil then        begin            Visita(q);            Empilhar(P,q^.dir);            Empilhar(P,q^.esq);        end;    end; end;

Visão esquemática da memória

a

topo elem

P

q

4

A B D E C F G

//

procedure PercPreOrdem(a: tPtNo); var    q: tPtNo;    P: tPilha; begin    Inicializa(P);    Empilhar(P,a);    while not PilhaVazia(P) do    begin        q:= Topo(P);        Desempilhar(P);        if q <> nil then        begin            Visita(q);            Empilhar(P,q^.dir);            Empilhar(P,q^.esq);        end;    end; end;

Visão esquemática da memória

a

topo elem

P

q

4

A B D E C F G

//

/

procedure PercPreOrdem(a: tPtNo); var    q: tPtNo;    P: tPilha; begin    Inicializa(P);    Empilhar(P,a);    while not PilhaVazia(P) do    begin        q:= Topo(P);        Desempilhar(P);        if q <> nil then        begin            Visita(q);            Empilhar(P,q^.dir);            Empilhar(P,q^.esq);        end;    end; end;

Visão esquemática da memória

a

topo elem

P

q

3

A B D E C F G

/

/

procedure PercPreOrdem(a: tPtNo); var    q: tPtNo;    P: tPilha; begin    Inicializa(P);    Empilhar(P,a);    while not PilhaVazia(P) do    begin        q:= Topo(P);        Desempilhar(P);        if q <> nil then        begin            Visita(q);            Empilhar(P,q^.dir);            Empilhar(P,q^.esq);        end;    end; end;

Visão esquemática da memória

a

topo elem

P

q

3

A B D E C F G

/

/

procedure PercPreOrdem(a: tPtNo); var    q: tPtNo;    P: tPilha; begin    Inicializa(P);    Empilhar(P,a);    while not PilhaVazia(P) do    begin        q:= Topo(P);        Desempilhar(P);        if q <> nil then        begin            Visita(q);            Empilhar(P,q^.dir);            Empilhar(P,q^.esq);        end;    end; end;

Visão esquemática da memória

a

topo elem

P

q

3

A B D E C F G

/

/

procedure PercPreOrdem(a: tPtNo); var    q: tPtNo;    P: tPilha; begin    Inicializa(P);    Empilhar(P,a);    while not PilhaVazia(P) do    begin        q:= Topo(P);        Desempilhar(P);        if q <> nil then        begin            Visita(q);            Empilhar(P,q^.dir);            Empilhar(P,q^.esq);        end;    end; end;

Visão esquemática da memória

a

topo elem

P

q

3

A B D E C F G

/

/

procedure PercPreOrdem(a: tPtNo); var    q: tPtNo;    P: tPilha; begin    Inicializa(P);    Empilhar(P,a);    while not PilhaVazia(P) do    begin        q:= Topo(P);        Desempilhar(P);        if q <> nil then        begin            Visita(q);            Empilhar(P,q^.dir);            Empilhar(P,q^.esq);        end;    end; end;

Visão esquemática da memória

a

topo elem

P

q

3

A B D E C F G

/

/

procedure PercPreOrdem(a: tPtNo); var    q: tPtNo;    P: tPilha; begin    Inicializa(P);    Empilhar(P,a);    while not PilhaVazia(P) do    begin        q:= Topo(P);        Desempilhar(P);        if q <> nil then        begin            Visita(q);            Empilhar(P,q^.dir);            Empilhar(P,q^.esq);        end;    end; end;

Visão esquemática da memória

a

topo elem

P

q

2

A B D E C F G

/

procedure PercPreOrdem(a: tPtNo); var    q: tPtNo;    P: tPilha; begin    Inicializa(P);    Empilhar(P,a);    while not PilhaVazia(P) do    begin        q:= Topo(P);        Desempilhar(P);        if q <> nil then        begin            Visita(q);            Empilhar(P,q^.dir);            Empilhar(P,q^.esq);        end;    end; end;

Visão esquemática da memória

a

topo elem

P

q

2

A B D E C F G

/

procedure PercPreOrdem(a: tPtNo); var    q: tPtNo;    P: tPilha; begin    Inicializa(P);    Empilhar(P,a);    while not PilhaVazia(P) do    begin        q:= Topo(P);        Desempilhar(P);        if q <> nil then        begin            Visita(q);            Empilhar(P,q^.dir);            Empilhar(P,q^.esq);        end;    end; end;

Visão esquemática da memória

a

topo elem

P

q

2

A B D E C F G

/

procedure PercPreOrdem(a: tPtNo); var    q: tPtNo;    P: tPilha; begin    Inicializa(P);    Empilhar(P,a);    while not PilhaVazia(P) do    begin        q:= Topo(P);        Desempilhar(P);        if q <> nil then        begin            Visita(q);            Empilhar(P,q^.dir);            Empilhar(P,q^.esq);        end;    end; end;

Visão esquemática da memória

a

topo elem

P

q

2

A B D E C F G

/

procedure PercPreOrdem(a: tPtNo); var    q: tPtNo;    P: tPilha; begin    Inicializa(P);    Empilhar(P,a);    while not PilhaVazia(P) do    begin        q:= Topo(P);        Desempilhar(P);        if q <> nil then        begin            Visita(q);            Empilhar(P,q^.dir);            Empilhar(P,q^.esq);        end;    end; end;

Visão esquemática da memória

a

topo elem

P

q

2

A B D E C F G

procedure PercPreOrdem(a: tPtNo); var    q: tPtNo;    P: tPilha; begin    Inicializa(P);    Empilhar(P,a);    while not PilhaVazia(P) do    begin        q:= Topo(P);        Desempilhar(P);        if q <> nil then        begin            Visita(q);            Empilhar(P,q^.dir);            Empilhar(P,q^.esq);        end;    end; end;

Visão esquemática da memória

a

topo elem

P

q

1

A B D E C F G

procedure PercPreOrdem(a: tPtNo); var    q: tPtNo;    P: tPilha; begin    Inicializa(P);    Empilhar(P,a);    while not PilhaVazia(P) do    begin        q:= Topo(P);        Desempilhar(P);        if q <> nil then        begin            Visita(q);            Empilhar(P,q^.dir);            Empilhar(P,q^.esq);        end;    end; end;

Visão esquemática da memória

a

topo elem

P

q

1

A B D E C F G

procedure PercPreOrdem(a: tPtNo); var    q: tPtNo;    P: tPilha; begin    Inicializa(P);    Empilhar(P,a);    while not PilhaVazia(P) do    begin        q:= Topo(P);        Desempilhar(P);        if q <> nil then        begin            Visita(q);            Empilhar(P,q^.dir);            Empilhar(P,q^.esq);        end;    end; end;

Visão esquemática da memória

a

topo elem

P

q

1

A B D E C F G

procedure PercPreOrdem(a: tPtNo); var    q: tPtNo;    P: tPilha; begin    Inicializa(P);    Empilhar(P,a);    while not PilhaVazia(P) do    begin        q:= Topo(P);        Desempilhar(P);        if q <> nil then        begin            Visita(q);            Empilhar(P,q^.dir);            Empilhar(P,q^.esq);        end;    end; end;

Visão esquemática da memória

a

topo elem

P

q

2

A B D E C F G

/

procedure PercPreOrdem(a: tPtNo); var    q: tPtNo;    P: tPilha; begin    Inicializa(P);    Empilhar(P,a);    while not PilhaVazia(P) do    begin        q:= Topo(P);        Desempilhar(P);        if q <> nil then        begin            Visita(q);            Empilhar(P,q^.dir);            Empilhar(P,q^.esq);        end;    end; end;

Visão esquemática da memória

a

topo elem

P

q

3

A B D E C F G

/

/

procedure PercPreOrdem(a: tPtNo); var    q: tPtNo;    P: tPilha; begin    Inicializa(P);    Empilhar(P,a);    while not PilhaVazia(P) do    begin        q:= Topo(P);        Desempilhar(P);        if q <> nil then        begin            Visita(q);            Empilhar(P,q^.dir);            Empilhar(P,q^.esq);        end;    end; end;

Visão esquemática da memória

a

topo elem

P

q

3

A B D E C F G

/

/

procedure PercPreOrdem(a: tPtNo); var    q: tPtNo;    P: tPilha; begin    Inicializa(P);    Empilhar(P,a);    while not PilhaVazia(P) do    begin        q:= Topo(P);        Desempilhar(P);        if q <> nil then        begin            Visita(q);            Empilhar(P,q^.dir);            Empilhar(P,q^.esq);        end;    end; end;

Visão esquemática da memória

a

topo elem

P

q

3

A B D E C F G

/

/

procedure PercPreOrdem(a: tPtNo); var    q: tPtNo;    P: tPilha; begin    Inicializa(P);    Empilhar(P,a);    while not PilhaVazia(P) do    begin        q:= Topo(P);        Desempilhar(P);        if q <> nil then        begin            Visita(q);            Empilhar(P,q^.dir);            Empilhar(P,q^.esq);        end;    end; end;

Visão esquemática da memória

a

topo elem

P

q

3

A B D E C F G

/

/

procedure PercPreOrdem(a: tPtNo); var    q: tPtNo;    P: tPilha; begin    Inicializa(P);    Empilhar(P,a);    while not PilhaVazia(P) do    begin        q:= Topo(P);        Desempilhar(P);        if q <> nil then        begin            Visita(q);            Empilhar(P,q^.dir);            Empilhar(P,q^.esq);        end;    end; end;

Visão esquemática da memória

a

topo elem

P

q

3

A B D E C F G

/

/

/

procedure PercPreOrdem(a: tPtNo); var    q: tPtNo;    P: tPilha; begin    Inicializa(P);    Empilhar(P,a);    while not PilhaVazia(P) do    begin        q:= Topo(P);        Desempilhar(P);        if q <> nil then        begin            Visita(q);            Empilhar(P,q^.dir);            Empilhar(P,q^.esq);        end;    end; end;

Visão esquemática da memória

a

topo elem

P

q

2

A B D E C F G

/

/

procedure PercPreOrdem(a: tPtNo); var    q: tPtNo;    P: tPilha; begin    Inicializa(P);    Empilhar(P,a);    while not PilhaVazia(P) do    begin        q:= Topo(P);        Desempilhar(P);        if q <> nil then        begin            Visita(q);            Empilhar(P,q^.dir);            Empilhar(P,q^.esq);        end;    end; end;

Visão esquemática da memória

a

topo elem

P

q

2

A B D E C F G

/

/

procedure PercPreOrdem(a: tPtNo); var    q: tPtNo;    P: tPilha; begin    Inicializa(P);    Empilhar(P,a);    while not PilhaVazia(P) do    begin        q:= Topo(P);        Desempilhar(P);        if q <> nil then        begin            Visita(q);            Empilhar(P,q^.dir);            Empilhar(P,q^.esq);        end;    end; end;

Visão esquemática da memória

a

topo elem

P

q

3

A B D E C F G

/

/

/

procedure PercPreOrdem(a: tPtNo); var    q: tPtNo;    P: tPilha; begin    Inicializa(P);    Empilhar(P,a);    while not PilhaVazia(P) do    begin        q:= Topo(P);        Desempilhar(P);        if q <> nil then        begin            Visita(q);            Empilhar(P,q^.dir);            Empilhar(P,q^.esq);        end;    end; end;

Visão esquemática da memória

a

topo elem

P

q

2

A B D E C F G

/

/

procedure PercPreOrdem(a: tPtNo); var    q: tPtNo;    P: tPilha; begin    Inicializa(P);    Empilhar(P,a);    while not PilhaVazia(P) do    begin        q:= Topo(P);        Desempilhar(P);        if q <> nil then        begin            Visita(q);            Empilhar(P,q^.dir);            Empilhar(P,q^.esq);        end;    end; end;

Visão esquemática da memória

a

topo elem

P

q

2

A B D E C F G

/

/

procedure PercPreOrdem(a: tPtNo); var    q: tPtNo;    P: tPilha; begin    Inicializa(P);    Empilhar(P,a);    while not PilhaVazia(P) do    begin        q:= Topo(P);        Desempilhar(P);        if q <> nil then        begin            Visita(q);            Empilhar(P,q^.dir);            Empilhar(P,q^.esq);        end;    end; end;

Visão esquemática da memória

a

topo elem

P

q

1

A B D E C F G

/

procedure PercPreOrdem(a: tPtNo); var    q: tPtNo;    P: tPilha; begin    Inicializa(P);    Empilhar(P,a);    while not PilhaVazia(P) do    begin        q:= Topo(P);        Desempilhar(P);        if q <> nil then        begin            Visita(q);            Empilhar(P,q^.dir);            Empilhar(P,q^.esq);        end;    end; end;

Visão esquemática da memória

a

topo elem

P

q

1

A B D E C F G

/

procedure PercPreOrdem(a: tPtNo); var    q: tPtNo;    P: tPilha; begin    Inicializa(P);    Empilhar(P,a);    while not PilhaVazia(P) do    begin        q:= Topo(P);        Desempilhar(P);        if q <> nil then        begin            Visita(q);            Empilhar(P,q^.dir);            Empilhar(P,q^.esq);        end;    end; end;

Visão esquemática da memória

a

topo elem

P

q

1

A B D E C F G

/

procedure PercPreOrdem(a: tPtNo); var    q: tPtNo;    P: tPilha; begin    Inicializa(P);    Empilhar(P,a);    while not PilhaVazia(P) do    begin        q:= Topo(P);        Desempilhar(P);        if q <> nil then        begin            Visita(q);            Empilhar(P,q^.dir);            Empilhar(P,q^.esq);        end;    end; end;

Visão esquemática da memória

a

topo elem

P

q

1

A B D E C F G

/

procedure PercPreOrdem(a: tPtNo); var    q: tPtNo;    P: tPilha; begin    Inicializa(P);    Empilhar(P,a);    while not PilhaVazia(P) do    begin        q:= Topo(P);        Desempilhar(P);        if q <> nil then        begin            Visita(q);            Empilhar(P,q^.dir);            Empilhar(P,q^.esq);        end;    end; end;

Visão esquemática da memória

a

topo elem

P

q

1

A B D E C F G

procedure PercPreOrdem(a: tPtNo); var    q: tPtNo;    P: tPilha; begin    Inicializa(P);    Empilhar(P,a);    while not PilhaVazia(P) do    begin        q:= Topo(P);        Desempilhar(P);        if q <> nil then        begin            Visita(q);            Empilhar(P,q^.dir);            Empilhar(P,q^.esq);        end;    end; end;

Visão esquemática da memória

a

topo elem

P

q

0

A B D E C F G

procedure PercPreOrdem(a: tPtNo); var    q: tPtNo;    P: tPilha; begin    Inicializa(P);    Empilhar(P,a);    while not PilhaVazia(P) do    begin        q:= Topo(P);        Desempilhar(P);        if q <> nil then        begin            Visita(q);            Empilhar(P,q^.dir);            Empilhar(P,q^.esq);        end;    end; end;

Visão esquemática da memória

a

topo elem

P

q

0

A B D E C F G

procedure PercPreOrdem(a: tPtNo); var    q: tPtNo;    P: tPilha; begin    Inicializa(P);    Empilhar(P,a);    while not PilhaVazia(P) do    begin        q:= Topo(P);        Desempilhar(P);        if q <> nil then        begin            Visita(q);            Empilhar(P,q^.dir);            Empilhar(P,q^.esq);        end;    end; end;

Visão esquemática da memória

a

topo elem

P

q

0

A B D E C F G

procedure PercPreOrdem(a: tPtNo); var    q: tPtNo;    P: tPilha; begin    Inicializa(P);    Empilhar(P,a);    while not PilhaVazia(P) do    begin        q:= Topo(P);        Desempilhar(P);        if q <> nil then        begin            Visita(q);            Empilhar(P,q^.dir);            Empilhar(P,q^.esq);        end;    end; end;

Visão esquemática da memória

a

topo elem

P

q

1

A B D E C F G

procedure PercPreOrdem(a: tPtNo); var    q: tPtNo;    P: tPilha; begin    Inicializa(P);    Empilhar(P,a);    while not PilhaVazia(P) do    begin        q:= Topo(P);        Desempilhar(P);        if q <> nil then        begin            Visita(q);            Empilhar(P,q^.dir);            Empilhar(P,q^.esq);        end;    end; end;

Visão esquemática da memória

a

topo elem

P

q

2

A B D E C F G

procedure PercPreOrdem(a: tPtNo); var    q: tPtNo;    P: tPilha; begin    Inicializa(P);    Empilhar(P,a);    while not PilhaVazia(P) do    begin        q:= Topo(P);        Desempilhar(P);        if q <> nil then        begin            Visita(q);            Empilhar(P,q^.dir);            Empilhar(P,q^.esq);        end;    end; end;

Visão esquemática da memória

a

topo elem

P

q

2

A B D E C F G

procedure PercPreOrdem(a: tPtNo); var    q: tPtNo;    P: tPilha; begin    Inicializa(P);    Empilhar(P,a);    while not PilhaVazia(P) do    begin        q:= Topo(P);        Desempilhar(P);        if q <> nil then        begin            Visita(q);            Empilhar(P,q^.dir);            Empilhar(P,q^.esq);        end;    end; end;

Visão esquemática da memória

a

topo elem

P

q

2

A B D E C F G

procedure PercPreOrdem(a: tPtNo); var    q: tPtNo;    P: tPilha; begin    Inicializa(P);    Empilhar(P,a);    while not PilhaVazia(P) do    begin        q:= Topo(P);        Desempilhar(P);        if q <> nil then        begin            Visita(q);            Empilhar(P,q^.dir);            Empilhar(P,q^.esq);        end;    end; end;

Visão esquemática da memória

a

topo elem

P

q

2

A B D E C F G

procedure PercPreOrdem(a: tPtNo); var    q: tPtNo;    P: tPilha; begin    Inicializa(P);    Empilhar(P,a);    while not PilhaVazia(P) do    begin        q:= Topo(P);        Desempilhar(P);        if q <> nil then        begin            Visita(q);            Empilhar(P,q^.dir);            Empilhar(P,q^.esq);        end;    end; end;

Visão esquemática da memória

a

topo elem

P

q

2

A B D E C F G

procedure PercPreOrdem(a: tPtNo); var    q: tPtNo;    P: tPilha; begin    Inicializa(P);    Empilhar(P,a);    while not PilhaVazia(P) do    begin        q:= Topo(P);        Desempilhar(P);        if q <> nil then        begin            Visita(q);            Empilhar(P,q^.dir);            Empilhar(P,q^.esq);        end;    end; end;

Visão esquemática da memória

a

topo elem

P

q

1

A B D E C F G

procedure PercPreOrdem(a: tPtNo); var    q: tPtNo;    P: tPilha; begin    Inicializa(P);    Empilhar(P,a);    while not PilhaVazia(P) do    begin        q:= Topo(P);        Desempilhar(P);        if q <> nil then        begin            Visita(q);            Empilhar(P,q^.dir);            Empilhar(P,q^.esq);        end;    end; end;

Visão esquemática da memória

a

topo elem

P

q

1

A B D E C F G

procedure PercPreOrdem(a: tPtNo); var    q: tPtNo;    P: tPilha; begin    Inicializa(P);    Empilhar(P,a);    while not PilhaVazia(P) do    begin        q:= Topo(P);        Desempilhar(P);        if q <> nil then        begin            Visita(q);            Empilhar(P,q^.dir);            Empilhar(P,q^.esq);        end;    end; end;

Visão esquemática da memória

a

topo elem

P

q

1

A B D E C F G

procedure PercPreOrdem(a: tPtNo); var    q: tPtNo;    P: tPilha; begin    Inicializa(P);    Empilhar(P,a);    while not PilhaVazia(P) do    begin        q:= Topo(P);        Desempilhar(P);        if q <> nil then        begin            Visita(q);            Empilhar(P,q^.dir);            Empilhar(P,q^.esq);        end;    end; end;

Visão esquemática da memória

a

topo elem

P

q

2

A B D E C F G

/

procedure PercPreOrdem(a: tPtNo); var    q: tPtNo;    P: tPilha; begin    Inicializa(P);    Empilhar(P,a);    while not PilhaVazia(P) do    begin        q:= Topo(P);        Desempilhar(P);        if q <> nil then        begin            Visita(q);            Empilhar(P,q^.dir);            Empilhar(P,q^.esq);        end;    end; end;

Visão esquemática da memória

a

topo elem

P

q

3

A B D E C F G

/

/

procedure PercPreOrdem(a: tPtNo); var    q: tPtNo;    P: tPilha; begin    Inicializa(P);    Empilhar(P,a);    while not PilhaVazia(P) do    begin        q:= Topo(P);        Desempilhar(P);        if q <> nil then        begin            Visita(q);            Empilhar(P,q^.dir);            Empilhar(P,q^.esq);        end;    end; end;

Visão esquemática da memória

a

topo elem

P

q

3

A B D E C F G

/

/

procedure PercPreOrdem(a: tPtNo); var    q: tPtNo;    P: tPilha; begin    Inicializa(P);    Empilhar(P,a);    while not PilhaVazia(P) do    begin        q:= Topo(P);        Desempilhar(P);        if q <> nil then        begin            Visita(q);            Empilhar(P,q^.dir);            Empilhar(P,q^.esq);        end;    end; end;

Visão esquemática da memória

a

topo elem

P

q

3

A B D E C F G

/

/

procedure PercPreOrdem(a: tPtNo); var    q: tPtNo;    P: tPilha; begin    Inicializa(P);    Empilhar(P,a);    while not PilhaVazia(P) do    begin        q:= Topo(P);        Desempilhar(P);        if q <> nil then        begin            Visita(q);            Empilhar(P,q^.dir);            Empilhar(P,q^.esq);        end;    end; end;

Visão esquemática da memória

a

topo elem

P

q

3

A B D E C F G

/

/

procedure PercPreOrdem(a: tPtNo); var    q: tPtNo;    P: tPilha; begin    Inicializa(P);    Empilhar(P,a);    while not PilhaVazia(P) do    begin        q:= Topo(P);        Desempilhar(P);        if q <> nil then        begin            Visita(q);            Empilhar(P,q^.dir);            Empilhar(P,q^.esq);        end;    end; end;

Visão esquemática da memória

a

topo elem

P

q

3

A B D E C F G

/

/

/

procedure PercPreOrdem(a: tPtNo); var    q: tPtNo;    P: tPilha; begin    Inicializa(P);    Empilhar(P,a);    while not PilhaVazia(P) do    begin        q:= Topo(P);        Desempilhar(P);        if q <> nil then        begin            Visita(q);            Empilhar(P,q^.dir);            Empilhar(P,q^.esq);        end;    end; end;

Visão esquemática da memória

a

topo elem

P

q

2

A B D E C F G

/

/

procedure PercPreOrdem(a: tPtNo); var    q: tPtNo;    P: tPilha; begin    Inicializa(P);    Empilhar(P,a);    while not PilhaVazia(P) do    begin        q:= Topo(P);        Desempilhar(P);        if q <> nil then        begin            Visita(q);            Empilhar(P,q^.dir);            Empilhar(P,q^.esq);        end;    end; end;

Visão esquemática da memória

a

topo elem

P

q

2

A B D E C F G

/

/

procedure PercPreOrdem(a: tPtNo); var    q: tPtNo;    P: tPilha; begin    Inicializa(P);    Empilhar(P,a);    while not PilhaVazia(P) do    begin        q:= Topo(P);        Desempilhar(P);        if q <> nil then        begin            Visita(q);            Empilhar(P,q^.dir);            Empilhar(P,q^.esq);        end;    end; end;

Visão esquemática da memória

a

topo elem

P

q

2

A B D E C F G

/

/

procedure PercPreOrdem(a: tPtNo); var    q: tPtNo;    P: tPilha; begin    Inicializa(P);    Empilhar(P,a);    while not PilhaVazia(P) do    begin        q:= Topo(P);        Desempilhar(P);        if q <> nil then        begin            Visita(q);            Empilhar(P,q^.dir);            Empilhar(P,q^.esq);        end;    end; end;

Visão esquemática da memória

a

topo elem

P

q

2

A B D E C F G

/

/

procedure PercPreOrdem(a: tPtNo); var    q: tPtNo;    P: tPilha; begin    Inicializa(P);    Empilhar(P,a);    while not PilhaVazia(P) do    begin        q:= Topo(P);        Desempilhar(P);        if q <> nil then        begin            Visita(q);            Empilhar(P,q^.dir);            Empilhar(P,q^.esq);        end;    end; end;

Visão esquemática da memória

a

topo elem

P

q

2

A B D E C F G

/

/

procedure PercPreOrdem(a: tPtNo); var    q: tPtNo;    P: tPilha; begin    Inicializa(P);    Empilhar(P,a);    while not PilhaVazia(P) do    begin        q:= Topo(P);        Desempilhar(P);        if q <> nil then        begin            Visita(q);            Empilhar(P,q^.dir);            Empilhar(P,q^.esq);        end;    end; end;

Visão esquemática da memória

a

topo elem

P

q

1

A B D E C F G

/

procedure PercPreOrdem(a: tPtNo); var    q: tPtNo;    P: tPilha; begin    Inicializa(P);    Empilhar(P,a);    while not PilhaVazia(P) do    begin        q:= Topo(P);        Desempilhar(P);        if q <> nil then        begin            Visita(q);            Empilhar(P,q^.dir);            Empilhar(P,q^.esq);        end;    end; end;

Visão esquemática da memória

a

topo elem

P

q

1

A B D E C F G

/

procedure PercPreOrdem(a: tPtNo); var    q: tPtNo;    P: tPilha; begin    Inicializa(P);    Empilhar(P,a);    while not PilhaVazia(P) do    begin        q:= Topo(P);        Desempilhar(P);        if q <> nil then        begin            Visita(q);            Empilhar(P,q^.dir);            Empilhar(P,q^.esq);        end;    end; end;

Visão esquemática da memória

a

topo elem

P

q

1

A B D E C F G

/

procedure PercPreOrdem(a: tPtNo); var    q: tPtNo;    P: tPilha; begin    Inicializa(P);    Empilhar(P,a);    while not PilhaVazia(P) do    begin        q:= Topo(P);        Desempilhar(P);        if q <> nil then        begin            Visita(q);            Empilhar(P,q^.dir);            Empilhar(P,q^.esq);        end;    end; end;

Visão esquemática da memória

a

topo elem

P

q

1

A B D E C F G

/

procedure PercPreOrdem(a: tPtNo); var    q: tPtNo;    P: tPilha; begin    Inicializa(P);    Empilhar(P,a);    while not PilhaVazia(P) do    begin        q:= Topo(P);        Desempilhar(P);        if q <> nil then        begin            Visita(q);            Empilhar(P,q^.dir);            Empilhar(P,q^.esq);        end;    end; end;

Visão esquemática da memória

a

topo elem

P

q

1

A B D E C F G

procedure PercPreOrdem(a: tPtNo); var    q: tPtNo;    P: tPilha; begin    Inicializa(P);    Empilhar(P,a);    while not PilhaVazia(P) do    begin        q:= Topo(P);        Desempilhar(P);        if q <> nil then        begin            Visita(q);            Empilhar(P,q^.dir);            Empilhar(P,q^.esq);        end;    end; end;

Visão esquemática da memória

a

topo elem

P

q

0

A B D E C F G

procedure PercPreOrdem(a: tPtNo); var    q: tPtNo;    P: tPilha; begin    Inicializa(P);    Empilhar(P,a);    while not PilhaVazia(P) do    begin        q:= Topo(P);        Desempilhar(P);        if q <> nil then        begin            Visita(q);            Empilhar(P,q^.dir);            Empilhar(P,q^.esq);        end;    end; end;

Visão esquemática da memória

a

topo elem

P

q

0

A B D E C F G

procedure PercPreOrdem(a: tPtNo); var    q: tPtNo;    P: tPilha; begin    Inicializa(P);    Empilhar(P,a);    while not PilhaVazia(P) do    begin        q:= Topo(P);        Desempilhar(P);        if q <> nil then        begin            Visita(q);            Empilhar(P,q^.dir);            Empilhar(P,q^.esq);        end;    end; end;

Visão esquemática da memória

a

topo elem

P

q

0

A B D E C F G

procedure PercPreOrdem(a: tPtNo); var    q: tPtNo;    P: tPilha; begin    Inicializa(P);    Empilhar(P,a);    while not PilhaVazia(P) do    begin        q:= Topo(P);        Desempilhar(P);        if q <> nil then        begin            Visita(q);            Empilhar(P,q^.dir);            Empilhar(P,q^.esq);        end;    end; end;

Visão esquemática da memória

a

topo elem

P

q

1

A B D E C F G

/

procedure PercPreOrdem(a: tPtNo); var    q: tPtNo;    P: tPilha; begin    Inicializa(P);    Empilhar(P,a);    while not PilhaVazia(P) do    begin        q:= Topo(P);        Desempilhar(P);        if q <> nil then        begin            Visita(q);            Empilhar(P,q^.dir);            Empilhar(P,q^.esq);        end;    end; end;

Visão esquemática da memória

a

topo elem

P

q

2

A B D E C F G

//

procedure PercPreOrdem(a: tPtNo); var    q: tPtNo;    P: tPilha; begin    Inicializa(P);    Empilhar(P,a);    while not PilhaVazia(P) do    begin        q:= Topo(P);        Desempilhar(P);        if q <> nil then        begin            Visita(q);            Empilhar(P,q^.dir);            Empilhar(P,q^.esq);        end;    end; end;

Visão esquemática da memória

a

topo elem

P

q

2

A B D E C F G

//

procedure PercPreOrdem(a: tPtNo); var    q: tPtNo;    P: tPilha; begin    Inicializa(P);    Empilhar(P,a);    while not PilhaVazia(P) do    begin        q:= Topo(P);        Desempilhar(P);        if q <> nil then        begin            Visita(q);            Empilhar(P,q^.dir);            Empilhar(P,q^.esq);        end;    end; end;

Visão esquemática da memória

a

topo elem

P

q

2

A B D E C F G

//

procedure PercPreOrdem(a: tPtNo); var    q: tPtNo;    P: tPilha; begin    Inicializa(P);    Empilhar(P,a);    while not PilhaVazia(P) do    begin        q:= Topo(P);        Desempilhar(P);        if q <> nil then        begin            Visita(q);            Empilhar(P,q^.dir);            Empilhar(P,q^.esq);        end;    end; end;

Visão esquemática da memória

a

topo elem

P

q

2

A B D E C F G

//

procedure PercPreOrdem(a: tPtNo); var    q: tPtNo;    P: tPilha; begin    Inicializa(P);    Empilhar(P,a);    while not PilhaVazia(P) do    begin        q:= Topo(P);        Desempilhar(P);        if q <> nil then        begin            Visita(q);            Empilhar(P,q^.dir);            Empilhar(P,q^.esq);        end;    end; end;

Visão esquemática da memória

a

topo elem

P

q

2

A B D E C F G

//

/

procedure PercPreOrdem(a: tPtNo); var    q: tPtNo;    P: tPilha; begin    Inicializa(P);    Empilhar(P,a);    while not PilhaVazia(P) do    begin        q:= Topo(P);        Desempilhar(P);        if q <> nil then        begin            Visita(q);            Empilhar(P,q^.dir);            Empilhar(P,q^.esq);        end;    end; end;

Visão esquemática da memória

a

topo elem

P

q

1

A B D E C F G

/

/

procedure PercPreOrdem(a: tPtNo); var    q: tPtNo;    P: tPilha; begin    Inicializa(P);    Empilhar(P,a);    while not PilhaVazia(P) do    begin        q:= Topo(P);        Desempilhar(P);        if q <> nil then        begin            Visita(q);            Empilhar(P,q^.dir);            Empilhar(P,q^.esq);        end;    end; end;

Visão esquemática da memória

a

topo elem

P

q

1

A B D E C F G

/

/

procedure PercPreOrdem(a: tPtNo); var    q: tPtNo;    P: tPilha; begin    Inicializa(P);    Empilhar(P,a);    while not PilhaVazia(P) do    begin        q:= Topo(P);        Desempilhar(P);        if q <> nil then        begin            Visita(q);            Empilhar(P,q^.dir);            Empilhar(P,q^.esq);        end;    end; end;

Visão esquemática da memória

a

topo elem

P

q

1

A B D E C F G

/

/

procedure PercPreOrdem(a: tPtNo); var    q: tPtNo;    P: tPilha; begin    Inicializa(P);    Empilhar(P,a);    while not PilhaVazia(P) do    begin        q:= Topo(P);        Desempilhar(P);        if q <> nil then        begin            Visita(q);            Empilhar(P,q^.dir);            Empilhar(P,q^.esq);        end;    end; end;

Visão esquemática da memória

a

topo elem

P

q

1

A B D E C F G

/

/

procedure PercPreOrdem(a: tPtNo); var    q: tPtNo;    P: tPilha; begin    Inicializa(P);    Empilhar(P,a);    while not PilhaVazia(P) do    begin        q:= Topo(P);        Desempilhar(P);        if q <> nil then        begin            Visita(q);            Empilhar(P,q^.dir);            Empilhar(P,q^.esq);        end;    end; end;

Visão esquemática da memória

a

topo elem

P

q

1

A B D E C F G

/

/

procedure PercPreOrdem(a: tPtNo); var    q: tPtNo;    P: tPilha; begin    Inicializa(P);    Empilhar(P,a);    while not PilhaVazia(P) do    begin        q:= Topo(P);        Desempilhar(P);        if q <> nil then        begin            Visita(q);            Empilhar(P,q^.dir);            Empilhar(P,q^.esq);        end;    end; end;

Visão esquemática da memória

a

topo elem

P

q

0

A B D E C F G

/

procedure PercPreOrdem(a: tPtNo); var    q: tPtNo;    P: tPilha; begin    Inicializa(P);    Empilhar(P,a);    while not PilhaVazia(P) do    begin        q:= Topo(P);        Desempilhar(P);        if q <> nil then        begin            Visita(q);            Empilhar(P,q^.dir);            Empilhar(P,q^.esq);        end;    end; end;

Visão esquemática da memória

a

topo elem

P

q

0

A B D E C F G

/

procedure PercPreOrdem(a: tPtNo); var    q: tPtNo;    P: tPilha; begin    Inicializa(P);    Empilhar(P,a);    while not PilhaVazia(P) do    begin        q:= Topo(P);        Desempilhar(P);        if q <> nil then        begin            Visita(q);            Empilhar(P,q^.dir);            Empilhar(P,q^.esq);        end;    end; end;

Visão esquemática da memória

a

topo elem

P

q

0

A B D E C F G

/

procedure PercPreOrdem(a: tPtNo); var    q: tPtNo;    P: tPilha; begin    Inicializa(P);    Empilhar(P,a);    while not PilhaVazia(P) do    begin        q:= Topo(P);        Desempilhar(P);        if q <> nil then        begin            Visita(q);            Empilhar(P,q^.dir);            Empilhar(P,q^.esq);        end;    end; end;

Visão esquemática da memória

a

topo elem

P

q

0

A B D E C F G

/

saída do laço e finalização

do módulo...

top related