660 likes | 832 Views
Estruturas de Dados II. Prof.: Sergio Pacheco. Prof.: Sergio Pacheco. 1. Sumário. Bizus para a Prova A1 Revisão Para a A1; Corrigir Trabalho. Prof.: Sergio Pacheco. 2. Prova em Consulta ??. Aquele Professor ...., Disse que ia ser fácil!!!!. E cada um o SEU !!!!!.
E N D
Estruturas de Dados II Prof.: SergioPacheco Prof.: Sergio Pacheco 1
Sumário • Bizus para a Prova A1 • Revisão Para a A1; • Corrigir Trabalho. Prof.: Sergio Pacheco 2
Prova em Consulta ?? Aquele Professor ...., Disse que ia ser fácil!!!! E cada um o SEU !!!!! Prof.: Sergio Pacheco 3
Prova em Dupla ?? Prof.: Sergio Pacheco 4
Listas Generalizadas - Definições • São estruturas muitos flexíveis, do tipo recursiva, que garantem a construção de estruturas simples as mais complexas. • Uma lista generalizada L [e1,e2,e3...,en],n>0; • Cada elemento pode ser um átomo ou então uma sublista caracterizando uma outra lista generalizada. • O tamanho da lista é definida pelo valor de n. Se n = 0 é dita lista vazia; • A lista é definida pela cabeça e1(head) e o resto outros elementos (tail). Prof.: Sergio Pacheco 5
Listas Generalizadas - Definições a d b c f e Representação Lista L= [a, [b,c],d,[e, [ ],f ] ]; Prof.: Sergio Pacheco 6
Listas Generalizadas - Exercícios • Desenhe a lista generalizada correspondente : L1 = [[[1], 2], [3, [4, 5]]]; L2 = [[1, [2, 3]], [[4]], 5]; L3 = [[[1, 2], 3], [4, [5]]]; Prof.: Sergio Pacheco 7
Listas Generalizadas - Gabaritos • Desenhe a lista generalizada correspondente : L1 = [[[1], 2], [3, [4, 5]]]; Prof.: Sergio Pacheco 8
Listas Generalizadas - Gabaritos • Desenhe a lista generalizada correspondente : L2 = [[1, [2, 3]], [[4]], 5]; Prof.: Sergio Pacheco 9
Listas Generalizadas - Gabaritos • Desenhe a lista generalizada correspondente : L3 = [[[1], 2], 3], [4, [5]]]; Prof.: Sergio Pacheco 10
Ainda não !! -- Notação Polonesa ou prefixa • Notação Polonesa (no Brasil, em Portugal é Notação Polaca) ou Notação de Prefixo: • É uma forma de notação para lógica, aritmética e álgebra. Não precisa de parênteses ou outros delimitadores para indicar os cálculos que devem ser realizados primeiramente; • Os operadores devem preceder os dois valores numéricos associados. O matemático polonês Jan Łukasiewicz criou essa notação em torno de 1920 para simplificar a lógica nas sentenças matemáticas; • Não é muito usado na matemática convencional, mas muito usado nas ciências da computação. Prof.: Sergio Pacheco 11
Notação Polonesa ou prefixa - Exemplo Exemplo: • Tradicional: A * B - C / D • Polonesa: - * A B / C D Prof.: Sergio Pacheco 12
Avaliar Expressões • Existe 3 tipos de notação, que são: • Infixa = A + B - C; • Prefixa = - + ABC; • Posfixa = AB + C -. • Refere-se a posição relativa do operador em relação aos demais operando; • Na notação prefixa o operador fica antes dos operandos; • Na notação posfixa o operador fica depois dos operandos. Prof.: Sergio Pacheco 13
Avaliar Expressões • Avalie está função abaixo: • A + B * C; Como ficaria na forma prefixa e posfixa ? • As operações com a precedência mais alta são convertidas em primeiro lugar; • Depois que uma parte da expressão for convertida, deve ser tratada como um único operando; • Operadores de mesma precedência, são avaliados da esquerda para a direita. Lê-se da esquerda para a direita Prof.: Sergio Pacheco 14
Avaliar Expressões • Posfixa: • A + B * C; • Passo 1 • A + ( B * C) • Passo 2 • A + ( B C *) • Passo 3 • ABC * + Prof.: Sergio Pacheco 15
Avaliar Expressões • Prefixa: • A + B * C; • Passo 1 • A + ( B * C) • Passo 2 • A + (* B C) • Passo 3 • +A * BC Prof.: Sergio Pacheco 16
Exercícios • Dadas as formas de expressões Infixa convertê-las para Posfixa: • A + B * C; • A + B – C; • (A + B) * ( C + D); • ((A + B) * C – (D - E) / (F + G)); • A – B / (C * D / E). Prof.: Sergio Pacheco 17
Árvore • Existe um nodo denominado Raiz; • Os demais nodos forma sub-árvores, desde que possuam nós filhos, onde cada um desses subconjuntos é uma árvore, ou seja, tirando o nó raiz os nós restantes podem ser divididos em n subconjuntos disjuntos, que são as sub-árvores, e as quais, por sua vez, também são árvores ; • Um nó folha não possui filhos, e seus ponteiros são nulos. • árvore == 0 então a árvore é dita vazia. Prof.: Sergio Pacheco 18
Marcelo Marcos André Viviane Márcia Ângela Rodrigo Gustavo Pedro Daniel Árvore – árvore genealógica Cada nó deve ser atingido partindo pelo nó raiz. Prof.: Sergio Pacheco 19
Árvore - Exercícios Qual é a profundidade da árvore? Quais são os graus dos nodos 18 e 20? Qual é o nível dos nós 9, 13, 1 7 e 18 ? Prof.: Sergio Pacheco 20
Árvore - Exercícios Qual é a profundidade da árvore? R: 4 Quais são os graus dos nodos 18 e 20? R: nó 18 grau 2; nó 20 grau 0. Qual é o nível dos nós 9, 13, 1 7 e 18 ? R: nível do no 9 = 4; nível do no 13 = 3; nível do no 17 = 2; nível do no 18 = 1. Prof.: Sergio Pacheco 21
Árvore – Revisão – Altura (h) Prof.: Sergio Pacheco 22
Árvore Binária • Árvore binária se caracteriza por seus nodos terem no máximo dois filho, ou seja, é uma árvore de grau 2 (no máximo); • Deve-se atentar para os conceitos de sub-arvore direita e esquerda. Nó paie nó filhos (esquerda direita); Prof.: Sergio Pacheco 23
A B C F D E G H I Árvore Binária • Se A é a raiz de uma árvore binária e B é a raiz de sua subárvore direitaou esquerda, então diz-se que A é o pai de B e que B é o filho direito ou esquerdo de A. Prof.: Sergio Pacheco 24
A B C F D E G H I Árvore Binária • Se A é a raiz de uma árvore binária e B é a raiz de sua subárvore direita[ou esquerda], então diz-se que A é o pai de B e que B é o filho direito [ou esquerdo] de A. Subárvore Esquerda Subárvore direita ? Prof.: Sergio Pacheco 25
A B C F D E G H I Árvore Binária • Se A é a raiz de uma árvore binária e B é a raiz de sua subárvore direitaou esquerda, então diz-se que A é o pai de B e que B é o filho direito ou esquerdo de A. Subárvore Esquerda Subárvore direita Nos Irmãos ? Prof.: Sergio Pacheco 26
Árvore Binária • O nó n1 é um ancestral do nó n2 (e n2 é um descendente de n1), se n1 for o pai de n2 ou o pai de algum ancestral de n2. Prof.: Sergio Pacheco 27
Árvore Binária • Mas E não é nem ancestral nem descendente de C. Prof.: Sergio Pacheco 28
Árvore Binária • B, D, E e G são descendentes esquerdos de A. Prof.: Sergio Pacheco 29
Árvore Binária • C, F, H e I são descendentes direitos de A. Prof.: Sergio Pacheco 30
Árvore Binária • Se todo nó que não é folha numa árvore binária tiver Subárvore esquerda e direita não-vazias, a árvore será considerada uma árvore estritamente binária. A C B E D H F Prof.: Sergio Pacheco 31
A C B E D F G J H I L M N O P Árvore Binária • Uma árvore binária completa de profundidade d é a árvore estritamente binária em que todas as folhas estejam no nível d, ou seja, no mesmo nível. Prof.: Sergio Pacheco 32
A C B E D F G J H I L M N O P Árvore Binária • Como todas as folhas nesta árvore estão no nível d, a árvore contém 2d folhas e 2d-1 nós não folhas. Prof.: Sergio Pacheco 33
Árvore Binária • Uma árvore binária de profundidade (altura) d será uma árvore binária quase completa se: • Cada folha na árvore estiver no nível d ou no nível d - 1. • E, para cada nó com descendente direito no último nível, existe a obrigatoriedade de ter, também, descendentes esquerdos, ou seja, uma árvore binária quase completa é uma árvore em que cada nó no último nível que tem um filho a direita tem também um filho a esquerda. Por outro lado no último nível, ter um filho a esquerda não requer um nó com filho a direita. Prof.: Sergio Pacheco 34
Árvore Binária • Uma árvore binária de profundidade d será uma árvore binária quase completa se: • Cada folha na árvore estiver no nível d ou no nível d - 1. No último nível tendo um filho a direita, deve-se ter um filho a esquerda. Prof.: Sergio Pacheco 35
Árvore Binária – Números de nós • Uma árvore estritamente bináriaquase completa com nfolhas tem 2n - 1 nós, assim como qualquer outra árvore estritamente binária com n folhas, onde n é o numero de folhas; • Uma árvore bináriaquase completa com n folhas, que não seja estritamente binária, tem 2n nós, onde n é o numero de folhas. Prof.: Sergio Pacheco 36
Árvore Binária – Números de nós • Uma árvore estritamente binária com n folhas contém sempre 2n - 1 nós. Prof.: Sergio Pacheco 37
Árvore Binária – Números de nós • Uma árvore estritamente binária completa (balanceada) com altura h. Tem-se com a fórmula (2h+1 -1), o numero de nós; • Os números de nós dessa árvore é descoberto pela fórmula a cima; • h = 2 com isso, 2 2+1 – 1 = 7 nós. Prof.: Sergio Pacheco 38
Classificar as árvores binárias, quanto ao tipo, e qual é a fórmula para calcular o números de nós. • Arvore estritamente binária (2 * folhas - 1); • Arvore estritamente binária, quase completa (2 * folhas-1) ou 2Nivel d e 2Nivel d -1 nós não folhas; • Arvore estritamente binária completa (2 h+1 -1); • Árvore binária e quase completa 2 * folhas. Prof.: Sergio Pacheco 39
Numeração da Árvore • Os nós de uma árvore binária quase completa podem ser numerados: • Atribui-se o número 1 à raiz; • Um filho esquerdo recebe a atribuição de um número equivalente ao dobro do número atribuído a seu pai; e • Um filho direito recebe a atribuição de um número equivalente ao dobro do número atribuído a seu pai mais um. Prof.: Sergio Pacheco 40
Numeração da Árvore • Exemplos de numeração de árvores binárias quase completas: Prof.: Sergio Pacheco 41
Percurso pre-ordem em-ordem pós-ordem Prof.: Sergio Pacheco 42
* / E - + B A D C Exercícios • em-ordem - (A + B)/(C - D) * E; * * C pre-ordem – * / + A B – C D E pós-ordem – A B + C D - / E * Prof.: Sergio Pacheco 43
Árvore de Pesquisa Binária • Serve para guardar valores de tal forma que a recuperação dos mesmos possa ser efetuada de forma ordenada; • Assim, cada nó interno de uma árvore binária de pesquisa obedece aos seguintes critérios: • Todo elemento armazenado na subárvore da esquerda for menor que R (Raiz); • Nenhum elemento armazenado na subárvore da direita for menor que R (Raiz); • Nenhum elemento armazenado na subárvore da esquerda for maior que R (Raiz); • As subárvores da esquerda e da direta também forem árvore de busca binária. * C Prof.: Sergio Pacheco 44
50 10 15 20 0 30 70 Árvore de Pesquisa Binária • Exemplo {50,10,15,20,0,30,70} * • A localização do ‘ponto de inserção’ é semelhante à busca por um valor na árvore. • Após a inserção do novo elemento, a árvore deve manter as propriedades de ‘árvore binária de busca’. • O nó inserido é sempre uma folha. Prof.: Sergio Pacheco 45
g m d i a b h l j z Árvore de Pesquisa Binária • Exercícios {g,i,a,b,h,j,l,m,z, d} Prof.: Sergio Pacheco 46
Revisão - Inserção em árvore binária • Exemplo: 14 15 4 9 7 18 3 5 16 4 20 17 9 14 5. 14 Prof.: Sergio Pacheco 47
Revisão - Inserção em árvore binária • Exemplo: 14 15 4 9 7 18 3 5 16 4 20 17 9 14 5. 14 15>14 15 Prof.: Sergio Pacheco 48
Revisão - Inserção em árvore binária • Exemplo: 14 15 4 9 7 18 3 5 16 4 20 17 9 14 5. 4<14 14 4 15 Prof.: Sergio Pacheco 49
Revisão - Inserção em árvore binária • Exemplo: 14 15 4 9 7 18 3 5 16 4 20 17 9 14 5. 9<14 14 4 15 Prof.: Sergio Pacheco 50