1 / 23

Estrutura de Dados e Algoritmos e Programa o e Computadores II

?rvores. Conceitos e terminologia?rvores bin?rias?rvores-BInclus?o e Exclus?oIntrodu??o aos grafos. ?rvores. As listas ligadas usualmente fornecem maior flexibilidade do que as matrizes, mas s?o estruturas lineares e ? dif?cil us?-las para organizar uma representa??o hier?rquica de objectos.Pil

cleveland
Télécharger la présentation

Estrutura de Dados e Algoritmos e Programa o e Computadores II

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. Estrutura de Dados e Algoritmos e Programao e Computadores II Aula 7: rvores

    2. rvores Conceitos e terminologia rvores binrias rvores-B Incluso e Excluso Introduo aos grafos

    3. rvores As listas ligadas usualmente fornecem maior flexibilidade do que as matrizes, mas so estruturas lineares e difcil us-las para organizar uma representao hierrquica de objectos. Pilhas e Filas limitam-se a somente uma dimenso. A rvore consiste de ns e arcos, que ao inverso das rvores naturais so representadas de cima para baixo, com a raiz no topo e as folhas na base.

    4. rvores A raiz um n que no possui ancestrais; ele s possui ns filhos. As folhas no possuem ns filhos, ou seus filhos so estruturas vazias. Exemplo:

    5. rvores Mais exemplos:

    6. rvores Cada n tem que ser atingvel a partir da raiz atravs de uma sequncia nica de arcos, chamada de caminho. O nmero de arco de um caminho chamado de comprimento do caminho. O nvel de um n o comprimento do caminho da raiz ao n mais 1, que o nmero de ns no caminho. A altura de uma rvore no vazia o nvel mximo de um n na rvore.

    7. rvores O nmero de filhos permitido por n e as informaes armazenadas em cada n diferenciam os diversos tipos de rvores existentes. Exemplo: na rvore da expresso (3+6)*(4-1)+5 os ns folhas possuem valores e os ns intermedirios possuem operaes

    8. rvores O nmero de filhos de um n chamado grau de sada desse n. Um n folha aquele com grau de sada nulo, ou tambm n terminal. Um n que no folha (isto , possui grau de sada diferente de zero) chamado n interior ou n interno, ou tambm n no-terminal. O grau de uma rvore o mximo entre os graus de seus ns. Uma floresta um conjunto de zero ou mais rvores.

    9. Percurso em rvores O percurso em rvores o processo de visitar cada n da rvore exactamente uma vez. O percurso pode ser interpretado como colocar todos os ns em uma linha. Mas qual a ordem? Existem n! percursos diferentes, quase todos caticos. Os bsicos so percurso em profundidade e percurso em extenso (largura).

    10. Percurso em rvores Um percurso em extenso visitar cada n comeando do menor nvel e move-se para os nveis mais altos nvel aps nvel, visitando cada n da esquerda para a direita. Sua implementao directa quando uma fila utilizada. Depois que um n visitado, seus filhos, se houver algum, so colocados no final da fila e o n no incio da fila visitado. Assim, os ns do nvel n+1 sero visitados somente depois de ter visitados todos os ns do nvel n.

    11. Percurso em rvores Breadth - First Search (BFS)

    12. Percurso em rvores O percurso em profundidade prossegue tanto quanto possvel esquerda (ou direita), ento se move para trs at a primeira encruzilhada, vai um passo para a direita (ou esquerda) e novamente, tanto quanto possvel, para a esquerda (ou direita). Repete-se este processo at que todos os ns sejam visitados.

    13. Percurso em rvores Depth - First Search (DFS)

    14. Percurso em rvores

    15. rvores Binrias Uma rvore binria uma rvore cujos ns tm 2 filhos (possivelmente vazios) e cada filho designado como filho esquerda ou filho direita. O nmero de folhas uma importante caracterstica das rvores binrias para mensurar uma eficincia esperada de algoritmos. Uma rvore binria conhecida como completa se todos os ns em todos os nveis, excepto o ltimo, tiverem 2 filhos.

    16. rvores Binrias Assim haveria, 20 = 1 ns no nvel 1, 21 = 2 ns no nvel 2, 22 = 4 ns no nvel 3 e, na forma geral, 2i ns no nvel i+1. Para todas as rvores binrias no-vazias cujos ns terminais tenham exactamente 2 filhos no-vazios, o nmero de folhas m ser o nmero de ns no-terminais k mais 1. (m = k + 1) Se uma rvore tem somente uma raiz, essa observao trivialmente vlida.

    17. rvores Binrias Se ela for vlida para uma certa rvore, ento, depois de anexar 2 folhas a uma das folhas j existentes, essa folha se torna um n no-terminal (m subtrado de 1 e k adicionado de 1). No entanto, 2 novas folhas so enxertadas na rvore (m adicionado de 2).

    18. rvores Binrias

    19. rvores Binrias de Busca Para cada n da rvore, todos os valores armazenados em sua sub-rvore esquerda so menores que o valor armazenado no prprio n, e todos os valores armazenados na sub-rvore direita so maiores que o prprio n.

    20. rvores Binrias de Busca Um algoritmo para localizar um elemento nessa rvore bastante directo. Para cada n, compare a chave com o valor armazenado no n correntemente apontado. Se for menor, v para a sub-rvore esquerda. Se for maior, v para a sub-rvore direita. Se for a mesma, a busca chegou ao fim. Se no houver como continuar, a chave no est na rvore.

    21. Percurso em rvores Binrias void BreadthFirst() { Queue q; Node *p = root; if (p != 0) { q.enqueue(p); while (!q.empty()){ p = q.dequeue(); visit(p); if (p->left != 0) q.enqueue(p->left); if (p->right != 0) q.enqueue(p->right); } } }

    22. Percurso em rvores Binrias void inorder(Node *p) { if (p != 0) { inorder(p->left); visit(p); inorder(p->right); } } void preorder(Node *p) { if (p != 0) { visit(p); preorder(p->left); preorder(p->right); } }

    23. rvores Binrias de Busca Como ser a insero em uma rvore binria de busca? E como ser a remoo em uma rvore binria de busca? No n folha? No n raiz? No n intermedirio?

More Related