1 / 50

Árvores (introdução) Anjolina Grisi de Oliveira Obs: vários slides foram cedidos por

Grafos. Árvores (introdução) Anjolina Grisi de Oliveira Obs: vários slides foram cedidos por Adolfo Almeida Duran (UFBA). Árvores. Uma árvore é um grafo conexo não orientado e sem circuitos simples. Uma floresta é um grafo cujas componentes conexas são árvores. Teorema

lolita
Download Presentation

Árvores (introdução) Anjolina Grisi de Oliveira Obs: vários slides foram cedidos por

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. Grafos Árvores (introdução) Anjolina Grisi de Oliveira Obs: vários slides foram cedidos por Adolfo Almeida Duran (UFBA)

  2. Árvores Uma árvore é um grafo conexo não orientado e sem circuitos simples CIn - UFPE

  3. Uma floresta é um grafo cujas componentes conexas são árvores CIn - UFPE

  4. Teorema Um grafo não orientado é uma árvore se e somente se existe um único caminho simples entre qualquer par de vértices. Prova Assuma que G é uma árvore. Logo G é um grafo conexo e sem circuitos simples. Sejam x e y dois nós de G. Logo, como G é conexo, existe um caminho simples entre x e y. Adicionalmente, esse caminho é único, pois se existisse um outro caminho, o caminho formado através da combinação do caminho de x até y com o segundo caminho começando por y e chegando a x formaria um circuito, o que contraria a hipótese de que G é uma árvore. CIn - UFPE

  5. Árvore EnraizadaUma árvore T = (V,E) é denominado enraizada quando algum vértice v é escolhido como especial. Esse vértice v é a raiz da árvore. CIn - UFPE

  6. Árvore Enraizada Usualmente representamos graficamente a raiz no topo. Podemos transformar uma árvore sem raiz numa árvore enraizada simplesmente escolhendo um vértice como raiz. CIn - UFPE

  7. ancestrais de j={e,c} descendentes de j={i,k} pai de j=e filhos de j={i,k} nível de j=2 altura da árvore =3 folhas={b,a,i,k,f,h,d} Raiz = c Árvore Enraizada CIn - UFPE

  8. O nível de um vértice é o tamanho do único caminho da raiz até ele. nível de j=2 A altura da árvore é o maior nível entre os nós. É o tamanho do maior caminho da raiz até uma das folhas. altura da árvore =3 Raiz = c Árvore Enraizada CIn - UFPE

  9. Árvore EnraizadaA raiz de uma árvore não possui pai, e todo vértice v diferente de r, possui um único pai. Uma folha é um vértice que não possui filhos. Vértices que possuem filhos são chamados de vértices internos. Quando a raiz é o único nó do grafo ela é uma folha. O nível da raiz é zero, de seus filhos é 1. O nível de um nó é igual ao nível de seu pai mais um. Para dois vértices irmãos v e w, nível(v)=nível(w). A altura de uma árvore é o valor máximo de nível(r) para todo vértice v de T. CIn - UFPE

  10. Subárvore Seja T(V,E) uma árvore enraizada e vV. Uma subárvore Tv de T é uma árvore enraizada cuja raiz é v, definida pelo subgrafo induzido pelos descendentes de v mais o próprio v. A subárvore de raiz v é única para cada vV. s v u v t x w w x CIn - UFPE

  11. Árvore m-ária Uma árvore enraizada é chamada de m-ária se todo nó interno não possui mais que m filhos. A árvore é chamada árvore m-ária cheia se todo nó interno possui exatamente m filhos. Uma árvore m-ária com m=2 é chamada de árvore binária. Binária 3-ária CIn - UFPE

  12. Árvore m-ária A árvore é chamada árvore m-ária cheia se todo nó interno possui exatamente m filhos. Uma árvore m-ária com m=2 é chamada de árvore binária. s u v t z - x w Binária cheia CIn - UFPE

  13. Árvore m-ária Uma árvore enraizada m-ária de altura h é balanceada se todas as folhas estão no nível h ou h-1. CIn - UFPE

  14. Árvore Balanceada? h=3 Nível(a) =1 Não está balanceada CIn - UFPE

  15. Árvore Enraizada OrdenadaNa definição de árvore enraizada, é irrelevante a ordem em que os filhos de cada vértice v são considerados. Caso a ordenação seja relevante a árvore é denominada enraizada ordenada. Assim, para cada vértice v pode-se identificar o primeiro filho de v (o mais a esquerda), o segundo filho (o segundo mais a esquerda), etc. CIn - UFPE

  16. Árvores CIn - UFPE

  17. Árvore enraizada ordenada No caso de árvores binárias, se um nó interno possui dois filhos, temos o filho da esquerda e o filho da direita A árvore cuja raiz é o filho da esquerda de um vértice é chamada de subárvore da esquerda desse vértice. b a e b d c d e Subárvore da esquerda de a CIn - UFPE

  18. Teorema Uma árvore com n nós possui n-1 arestas. Prova Definimos uma bijeção entre as arestas e os vértices diferentes da raiz, de forma que associamos cada vértice terminal de uma aresta com ela própria. Como existem n-1 nós além da raiz, logo existem n-1 arestas na árvore. CIn - UFPE

  19. Teorema Uma árvore m-ária cheia com i nós internos contem n = mi + 1 nós. Prova Cada vértice com exceção da raiz é filho de um nó interno. Como cada um dos i nós internos possui m filhos, existem mi nós na árvore além da raiz. Consequentemente, a árvore contem n = mi + 1 nós. CIn - UFPE

  20. Teorema Uma árvore m-ária cheia com • n nós possui i=(n-1)/m nós internos e l = ((m-1)n +1)/m folhas • i nós internos possui n = mi + 1 nós e f= (m-1)i + 1 folhas • f folhas possui n = (mf – 1)/ (m-1) nós e i= (f-1)/(m-1) nós internos CIn - UFPE

  21. Teorema - Prova Uma árvore m-ária cheia com • n nós possui i=(n-1)/m nós internos e l = ((m-1)n +1)/m folhas Vimos que n= mi + 1, logo i = (n-1)/m. Temos também que n = i + f, onde f é o número de folhas. Logo, f = n – i; f = n – (n-1)/m = (mn – (n-1))/m = (mn – n + 1)/m = ((m-1)n + 1)/m CIn - UFPE

  22. Exemplo Suponha que alguém iniciou uma corrente de cartas. Cada pessoa que recebe a carta é convidada a enviá-la para outras quatro pessoas. Quantas pessoas receberam a carta, incluindo a pessoa que iniciou a corrente, se nenhuma pessoa recebeu mais que uma carta e se a corrente acabou depois que 64 pessoas leram a carta e não mais a enviaram? Quantas pessoas enviaram a carta? CIn - UFPE

  23. Solução A corrente pode ser representada usando uma árvore 4-ária. Os nós internos correspondem às pessoas que enviaram a carta, e as folhas às pessoas que não a enviaram. Temos que 64 pessoas não enviaram a carta. Assim o número de folhas f é igual a 64. Temos n = i + f e n = mi + 1. Logo: 64 + i = 4.i + 1 => 3.i = 63 => i = 21 Resposta: 21 pessoas enviaram a carta CIn - UFPE

  24. Teorema Existem no máximo mh folhas em uma árvore m-ária de altura h. Prova: por indução sobre a altura Cada uma dessas subárvores possui altura no máximo h-1. Portanto, pela H.I. existem no máximo mh-1 folhas em cada uma delas. Como existem no máximo m dessas subárvores, cada uma com no máximo mh-1 folhas, então existem no máximo m.mh-1 = mh folhas.  h-1  h-1  h-1 CIn - UFPE

  25. Aplicações: Árvore binária de busca Busca de itens numa lista. Cada vértice é rotulado por uma chave de forma que a chave de um vértice é maior do que as chaves de todos os nós da subárvore da esquerda e menor do que as chaves dos nós da subárvore da direita. 55 30 80 20 35 90 45 32 CIn - UFPE

  26. Construindo uma árvore binária de busca Procedimento recursivo que recebe uma lista de itens. O primeiro item da lista é a raiz da árvore. Para adicionar um novo item compare-o com os nós que já estão na árvore: comece pela raiz e siga para a esquerda se o item é menor que o item que rotula o nó que está sendo comparado ou siga para a direita, caso contrário. Quando o novo item é menor que um item cujo nó não tem filho da esquerda, adicione-o como filho da esquerda desse nó. Analogamente, quando o item é maior que o item cujo nó não tem filho da direita, adicione-o como filho da direita desse nó, CIn - UFPE

  27. Construindo uma árvore binária de busca Construa uma árvore binária de busca a partir da seguinte lista: 55,30,80,90,35,32,20,45 CIn - UFPE

  28. Exemplo: árvore binária de busca Use a ordem alfabética para construir uma árvore binária de busca com as palavras da seguinte frase: O título de uma das músicas de sucesso do cantor Bruno Mars é ``The Lazy Song´´. CIn - UFPE

  29. Caminhado em árvores enraizadas e ordenadas Procedimento universal para ordenar os seus nós: • Rotule a raiz com o inteiro 0. Em seguida rotule seus k filhos da esquerda para direita com 1,2,3,....,k. • Para cada vértice v no nível n com rótulo A, rotule seus k filhos da esquerda para a direita com A.1, A.2, ...A.k. CIn - UFPE

  30. Exemplo 0 1 3 2 1.1 1.2 3.1 3.2 3.3 1.1.1 1.1.2 3.1.1 3.1.2 1.1.2.1 1.1.2.3 1.1.2.2 CIn - UFPE

  31. Procedimento universal para ordenar os nós • Podemos ordenar os nós usando a ordem lexicográfica de seus rótulos. x1.x2....xn < y1.y2....ym se • existe um i, 0  i  n, com x1= y1, x2=y2, ...xi-1 = yi-1 e xi< yi; ou • n < m e xi=yi, para i =1,2,...,n. CIn - UFPE

  32. Caminhamento em pré-ordem Seja T uma árvore enraizada e ordenada com raiz r. Se T possui apenas r, então o caminhamento em pré-ordem de T é r. Caso contrário, sejam T1, T2,... Tn as subárvores de r da esquerda para a direita. O caminhamento em pré-ordem começa visitando r e continua fazendo um caminhamento em pré-ordem em T1, em seguida em T2, e assim sucessivamente até que Tn seja percorrida em pré-ordem. CIn - UFPE

  33. Exemplo a b d c e f g i h j k m l n o p CIn - UFPE

  34. Caminhamento em ordem Seja T uma árvore enraizada e ordenada com raiz r. Se T possui apenas r, então o caminhamento em ordem de T é r. Caso contrário, sejam T1, T2,... Tn as subárvores de r da esquerda para a direita. O caminhamento em ordem começa fazendo um percorrendo em ordem em T1 em ordem, em seguida visita r, e continua fazendo um caminhamento em ordem em T2, em T3 , e finalmente em Tn . CIn - UFPE

  35. Caminhamento em pós-ordem Seja T uma árvore enraizada e ordenada com raiz r. Se T possui apenas r, então o caminhamento em pós-ordem de T é r. Caso contrário, sejam T1, T2,... Tn as subárvores de r da esquerda para a direita. O caminhamento em pós-ordem começa percorrendo T1 em pós-ordem, em seguida T2, T3 , ... Tn , e finaliza visitando r. CIn - UFPE

  36. Notação infixa, pré-fixa e pós-fixa Podemos representar expressões complicadas, tais como proposições compostas, combinações de conjuntos, e expressões aritméticas usando árvores enraizadas ordenadas. • O nós internos representam operações • As folhas representam as variáveis ou valores • As operações são executadas na subárvore da esquerda e depois na direita CIn - UFPE

  37. Notação infixa: exemplo Árvore que representa a expressão ((x+y)^2) + ((x-4)/3): • A árvore binária é construída de baixo para cima. • Construímos a subárvore (x+y), depois a incorporamos como parte de uma subárvore maior que representa (x+y)^2. ^ + + 2 x y x y CIn - UFPE

  38. ^ Notação infixa: ((x+y)^2) + ((x-4)/3) • Do mesmo modo a subárvore (x-4) é construída e incorporada à subárvore maior de (x-4)/3 + + 2 x y x y / - - 3 x 4 x 4 CIn - UFPE

  39. Notação infixa: ((x+y)^2) + ((x-4)/3) Por último as subárvore de ((x+y)^2) e de ((x-4)/3) são combinadas para formar a expressão toda + ^ / + 2 - 3 x y x 4 CIn - UFPE

  40. Caminhamento em ordem: ((x+y)^2) + ((x-4)/3) + ^ / + 2 - 3 x y x 4 CIn - UFPE

  41. Qual é a forma pré-fixa da expressão ((x+y)^2) + ((x-4)/3) ? (notação polonesa) Fazemos um caminhamento em pré-ordem + ^ + x y 2 / - x 4 3 + ^ / + 2 - 3 x y x 4 CIn - UFPE

  42. + - * 2 3 5 / ^2 3 4 Qual o valor da expressão + - * 2 3 5 / ^2 3 4 ? + - * 2 3 5 / 8 4 + - 6 5 2 + - * 2 3 5 / 8 4 + - 6 5 2 + - * 2 3 5 2 + 1 2 + - * 2 3 5 2 + 1 2 + - 6 5 2 3 CIn - UFPE

  43. Qual é a forma pós-fixa da expressão ((x+y)^2) + ((x-4)/3) ? Fazemos um caminhamento em pós-ordem x y + 2 ^ x 4 – 3 / + + ^ / + 2 - 3 x y x 4 CIn - UFPE

  44. 7 6 - 4 ^9 3 / + Qual o valor da expressão em notação pós-fixa? 7 2 3 * - 4 ^9 3 / + 1 4 ^ 9 3 / + 1 9 3 / + 1 3 + 4 CIn - UFPE

  45. Encontre a árvore enraizada ordenada que representa a seguinte proposição composta (¬(pΛq))↔(¬p v ¬q) ¬ ¬ Λ ↔ p q p q v ¬ v ¬ ¬ ¬ ¬ ¬ Λ Λ p q q p p q p q CIn - UFPE

  46. Pré-fixa: ↔¬Λpqv¬p¬q ↔ Pós-fixa: pqΛ¬p¬q¬v↔ Forneça a notação pré-fixa e pós-fixa dessa expressão (¬(pΛq))↔(¬p v ¬q) v ¬ O caminhamento em ordem colocaria a negação imediatamente após o seu operando. Isso acontece sempre com os operadores unários. ¬ ¬ Λ q p p q A expressões em notação pré-fixa e pós-fixa não são ambíguas. Por esse motivo, são utilizadas em computação. Especialmente na construção de compiladores CIn - UFPE

  47. Desenhe a árvore enraizada ordenada da seguinte expressão aritmética escrita usando a notação pré-fixa. + * + - 5 3 2 1 4 Em seguida, escreva a mesma expressão em notação infixa. + * 4 ((((5-3)+2)*1)+4) 1 + - 2 5 3 CIn - UFPE

  48. Mais aplicações de árvores 1Árvores de decisão 2 Código de prefixo • Pode ser usado em compactação de arquivos ou criptografia • Considere o problema em que letras são codificadas por sequências de bits • Uma maneira de garantir que nenhuma sequência de bits corresponde a mais de uma sequência de letras, é escolher códigos de forma que a cadeia de bits para uma letra nunca ocorre como prefixo de uma cadeia de bits de outra letra. CIn - UFPE

  49. Construa a árvore binária com os códigos de prefixo que representam os seguintes esquemas de codificação: 1)a:11, e:0, r:101, s:100 2) a:1,e:01,r:001, s:0001, n:00001 1 0 e 1 0 a 0 1 s r CIn - UFPE

  50. 2) a:1,e:01,r:001, s:0001, n:00001 0 1 0 a 1 1 e 0 r 1 s CIn - UFPE

More Related