A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Árvores Passeios.

Apresentações semelhantes


Apresentação em tema: "Árvores Passeios."— Transcrição da apresentação:

1 Árvores Passeios

2 Árvores - Passeios Realizar um passeio numa árvore binária deve ser entendido como visitar de forma sistemática, cada um de seus nós, desenvolvendo um certo processamento. Podemos considerar quatro tipos de passeios: Em-ordem Pré-ordem (também conhecido como passeio em profundidade) Pós-ordem Em-nível

3 Árvores - Passeios Para facilitar a compreensão dos três primeiros tipos, vamos utilizar um analogia com as notações que uma expressão aritmética pode ser escrita: infixa, prefixa e pósfixa. Notação Seqüência Equivalência Infixa Exibir a folha esquerda ( E ) Em-ordem Exibir a raiz ( R ) Exibir a folha direita ( D ) Prefixa Exibir a raiz ( R ) Pré-ordem Pósfixa Pós-ordem

4 Árvores - Passeios Pela análise na figura da representação da expressão A + B como árvore binária e a analogia realizada a partir dela, percebemos que a seqüência básica de acesso ERD pode ser generalizada Na verdade, cada subárvore não precisa se restringir a uma única folha: Exibir a subárvore esquerda ( E) Exibir a raiz ( R) Exibir a subárvore direita ( D ) Podemos observar que a seqüência ERD tornou-se recursivas Ambas as subárvores devem ser impressas também em-ordem e a recursão pára quando chegamos a subárvores nulas As seqüências pré-ordem e pós-ordem podem ser generalizadas segundo o mesmo raciocínio

5 Árvores – Passeios - Implementação
O método para o passeio em ordem. Para os outros, basta alterar a posição da operação a ser realizada. // Métodos da classe Node public void inorder(Node t) { if (t!=NULL){ inorder(t.left); /* Alguma operação com o valor do nó */ inorder(t.right); }

6 Árvores – Passeio em Nível
Parece ser o de mais fácil compreensão Entretanto, sua implementação é a mais complexa. Supondo que ele fosse aplicado à árvore da figura abaixo, obteríamos s seqüência: d,b,e,a,c,f Observe que agora os nós são acessados, por nível, da esquerda para a direita

7 Árvores – Passeio em Nível
Podemos usar uma fila contendo inicialmente apenas o nó raiz A partir daí, enquanto a fila não se tornar vazia, retiramos dela um nós cujos filhos deverão ser colocados na fila, aí então, o nó retirado da fila pode ser exibido. // Métodos da classe Node void inlevel(Node t) { if (t!=null){ Queue q = new Queue(); q.Enqueue(t); while (q.Count > 0){ Node n = q.Dequeue() as Node; if (n.left!=null) q.Enqueue(n.left); if (n.right!=null) q.Enqueue(n.right); /* Alguma operação com o valor do nó */ }


Carregar ppt "Árvores Passeios."

Apresentações semelhantes


Anúncios Google