28.02.2023 Views

Logica_de_Programacao_3_Edicao_Livro

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Capítulo 7 Estruturas de dados avançadas 1 173

Logo a seguir descreven1os o algorit1110 capaz de percorrer o labirinto (árvore) e descobrir

a localização do baú con1 o tesouro, caso exista.

ALGORITMO 7.9

Busca em profundidade na árvore

1. inicio

2. tipo vetFi lho = vetor [1 .. 4] de inteiro;

3. tipo rNó = registro

4. caracter: info;

5. vetFilho: filho;

6. fimregistro;

7. tipo VET = vetor [1 .. 1000] de rNó;

8. VET: árvore;

9. tipo reg = registro

10. caracter: local;

11. inteiro: prox;

12 . fimregistro;

13 . tipo VTP = vetor [1 .. 100] de reg;

14. VTP: pilha;

15.

16. inteiro: nó, topo, 1;

17.

18. topo~ O;

19. nó~ l;

20. enquanto árvore [nó] . i nfo <> "moedas" faça

21. para i de 4 até 1 passo - 1 faça

22. se árvore[nó].filho[i] <> O

23. então Empilha(árvore[nó].fil ho[i]); // Utilizando Empilha

24. fimse;

25. fimpara;

26. nó~ pilha[topo].local;

27. desempil ha;

28. fimenquanto;

29. se árvore[nó]. info = "moedas"

30. então escreva ("O tesouro está na caverna", nó);

31. senão escreva ("Tesouro não encontrado");

32. fimse;

33. fim.

Observemos que o aJgo1itmo utiliza os módulos Empilha e Desempilha definidos nos

algoritmos 7.7 e 7.8, respectivamente.

Poderíarnos percorrer a árvore de outra rnaneira, ou seja, visitando todos os filhos de

mesmo nível dos diversos ran10s, corno ilustra a Figura 7.8.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!