Índice > Árvore > Árvore Binária > Exercício - Rastreamento

Instituto de Ciências Matemáticas de São Carlos
Departamento de Computação e Estatística
SCE182 - Algoritmos e Estruturas de Dados 1
Profs. Resp.: Graça Pimentel e Maria Cristina

Exercício - Rastreamento

1) Percurso In-Ordem

A chamada é feita com N apontando raiz

  Procedure InOrdem(N:PNo);

  Begin
    If N<>nil Then
      Begin
        InOrdem(N^.esq);
        write(N);
        InOrdem(N^.dir);
      End;
  End;

2) Percurso Pós-Ordem

A chamada é feita com t apontando raiz, use a mesma árvore acima

  Procedure Tornar_Vazia(var t: tree);

  Begin
    If not vazia(t) Then
      Begin
        Tornar_Vazia(t^.esq);
        Tornar_Vazia(t^.dir);
        dispose(t);
      End;
    t:=nil;
  End;

3) Altura de uma árvore

Use a mesma árvore acima. A chamada é feita com r apontando raiz.

  Function h(r:Pno): integer;
  Var altE, altD: integer;

  Begin
    If r=nil Then
      h:=0;
    Else
      Begin
        altE:=h(r^.esq);
        altD:=h(r^.dir);
        h:=max(altE, altD) + 1;
      End;
  End;

4) Nível de um nó pesquisado

A chamada é feita com r apontando raiz e item contendo E.

  Function Nivel(t: tree; item: Telem):integer;
  Var p:integer;

    Procedure Travessia(ptr:tree; niv:integer);

    Begin
      If ptr<>nil Then
        Begin
          niv:=niv+1;
          If igual(ptr^.item, item) Then
            p:=niv;
          Else
            Begin
              Travessia(ptr^.esq, niv);
              If p=0 Then
                Travessia(ptr^.dir, niv);
            End;
        End;
    End;

  Begin {Nivel}
    p:=0;
    Travessia(t,p);
    nivel:=p;
  End;

5) Busca em ABB com sentinela

Use a árvore binária de busca dado abaixo. A chamada é feita com raiz apontando raiz e x contendo 22.

  Function Busca(x:Tchave; raiz:Pno):Pno;
  Var achou: boolean;
      p: PNo;

  Begin
    p:=raiz;
    sentinela^.chave:=x;
    While p^.chave <>x do
      If p^.chave < x Then 
        p:=p^.dir
      Else p:=p^.esq;
    Busca:=p;
  End;


Árvore Binária