1 / 7

Árvores

Árvores. Passeios. Á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

jada-hebert
Download Presentation

Árvores

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  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.

  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ó */ } } }

More Related