Fontes Bibliográficas. Estruturas de Dados Aula 15: Árvores. Introdução. Definição Recursiva de Árvore

Documentos relacionados
MAC0328 Algoritmos em Grafos AULA 1. Edição MAC0328 Algoritmos em Grafos. Administração MAC0328 MAC0328

Lista de Exercícios 9 Grafos

MAC0328 Algoritmos em Grafos. Administração. MAC328 Algoritmos em Grafos. Página da disciplina: ~ am/328. Livro:

Grafos. Luís Antunes. Grafos dirigidos. Grafos não dirigidos. Definição: Um grafo em que os ramos não são direccionados.

Otimização em Grafos

Primeira Prova de CTC-20 Estruturas Discretas 24/09/2009 Prof. Carlos Henrique Q. Forster

Análise e Síntese de Algoritmos

Lista 3 - Resolução. 1. Verifique se os produtos abaixo estão bem definidos e, em caso afirmativo, calcule-os.

Problema do Caixeiro Viajante. Solução força bruta. Problema do Caixeiro Viajante. Projeto e Análise de Algoritmos. Problema do Caixeiro Viajante

Conteúdo PCS Aula 12 Modelos de Rede e Algoritmo do Fluxo Máximo. Líria Sato Professor Responsável. 5.1 Modelos de rede. 5.

AULA 12. Otimização Combinatória p. 342

UNIVERSIDADE ESTADUAL DE MARINGÁ DEPARTAMENTO DE INFORMÁTICA

Disciplina: Programação 1 Professor: Paulo César Fernandes de Oliveira, BSc, PhD. Lista de Exercícios JavaScript 8 (revisão)

Núcleo de Computação Eletrônica Universidade Federal do Rio de Janeiro. Grafos: Introdução

MESTRADO INTEGRADO EM ENGENHARIA INFORMÁTICA E COMPUTAÇÃO EIC0011 MATEMÁTICA DISCRETA

GRAFOS GRAFOS GRAFOS. Introdução; Algoritmo de Dijkstra.

Operações em Estruturas de Dados

ESTRATÉGIAS DE BUSCA CEGA

Lista de Exercícios 9: Soluções Grafos

Módulo 03. Determinantes. [Poole 262 a 282]

v 2 Cada um dos arcos está associado a um par ordenado de vértices sendo o primeiro a extremidade inicial do arco e o outro a sua extremidade final.

= 1, independente do valor de x, logo seria uma função afim e não exponencial.

Conteúdo PCS Aulas 4-5 Grafos. Líria Sato Professor Responsável. 4.1 Representação de Grafos. 4.1 Representação de Grafos

PROVA EXTRAMUROS (ii) A Parte I (duas questões dissertativas) corresponde a 25% da pontuação total da prova.

Estruturas de Dados Aula 15: Árvores 17/05/2011

Universidade Federal de São Carlos Centro de Ciências Agrárias campus Araras Departamento de Recursos Naturais e Proteção Ambiental

Teoria dos Grafos Aula 11

Árvores B. Introdução. Introdução. AVL como Índice em Disco. AVL como Índice em Disco. Representação

Geometria Espacial (Exercícios de Fixação)

Fontes Bibliográficas. Estruturas de Dados Aula 15: Árvores. Livros:

Dado um grafo G, é possível encontrar uma representação gráfica para o grafo tal que não

AGRUPAMENTO DE ESCOLAS DE MORTÁGUA Geometria Ficha de Trabalho Nº 02 10º Ano

+ = x + 3y = x 1. x + 2y z = Sistemas de equações Lineares

TÓPICOS. Melhor aproximação. Projecção num subespaço. Mínimo erro quadrático.

Usando a função Etiqueta adesiva imprimível. Usando a tela de edição. Computador. Tablet. ScanNCutCanvas

RESOLUÇÃO DE EQUAÇÕES POR MEIO DE DETERMINANTES

Aulas práticas: Introdução à álgebra geométrica

AULA 9. Universidade Tecnológica Federal do Paraná Campus Toledo Curso de Engenharia Eletrônica Desenho Técnico Prof. Dr.

Árvores Binárias. INF01203 Estruturas de Dados. Tipos de Árvores Binárias. Tipos de Árvores Binárias. grau dos nós. ordenadas.

Cálculo Diferencial II Lista de Exercícios 1

# D - D - D - - -

Conteúdo. PCS 2215 Fundamentos de Engenharia de Computação II. Aulas 1-3 Grafos. Líria Sato Professor Responsável. 1.1 Conceitos principais

8 = 1 GRUPO II. = x. 1 ln x

Exame de Proficiência de Pré-Cálculo

Eletrônica Digital Moderna e VHDL Volnei A. Pedroni, Elsevier, Soluções dos Exercícios Ímpares dos Capítulos 1 5

Problemas Hamiltonianos

Material Teórico - Módulo Triângulo Retângulo, Lei dos Senos e Cossenos, Poĺıgonos Regulares. Razões Trigonométricas no Triângulo Retângulo.

VARIÁVEIS ALEATÓRIAS CONTÍNUAS. Vamos agora estudar algumas variáveis aleatórias contínuas e respectivas propriedades, nomeadamente:

Hewlett-Packard O ESTUDO DA RETA. Aulas 01 a 05. Elson Rodrigues, Gabriel Carvalho e Paulo Luiz

TOTAL PONTOS Nome: Data: / Hora: h m às h m Resolva os problemas e assinale a alternativa correspondente:

CAPÍTULO 3. Exercícios é contínua, decrescente e k 2 positiva no intervalo [ 3, [. De ln x 1 para x 3, temos. dx 3.

Adição dos antecedentes com os consequentes das duas razões

Associação de Resistores e Resistência Equivalente

Corrected. Exame de Proficiência de Pré-Cálculo (2018.2)

MECANISMOS DE REAÇÕES

3. Geometria Analítica Plana

Análise de Algoritmos Gabarito da Primeira Prova

Grafos. Histórico. Histórico. Histórico. Histórico. Definição

ORION 6. Segunda Porta USB. Henry Equipamentos Eletrônicos e Sistemas Ltda.

TOTAL PONTOS Nome: Data: / Hora: h m às h m Resolva os problemas e assinale a alternativa correspondente:

LICENCIATURA EM ENGENHARIA CIVIL

Sinais e Sistemas Mecatrónicos

Programação II. Ordenação (sort) Bruno Feijó Dept. de Informática, PUC-Rio

NESS-A TOUCH SCREEN 7" C/ MODEM

Anexo IV Estrutura societária. Estrutura societária vigente

Quicksort ordenação rápida

Matemática Régis Cortes FUNÇÃO DO 2 0 GRAU

1a) QUESTÃO: ciclos 2a) QUESTÃO: estado inicial indefinidamente travar 4a) QUESTÃO: Anel 1ª) Questão

TÓPICOS. Números complexos. Plano complexo. Forma polar. Fórmulas de Euler e de Moivre. Raízes de números complexos.

FOI DEUS QUEM FEZ VOCÊ

conjunto dos números inteiros. conjunto dos números que podem ser representados como quociente de números inteiros.

Métodos Computacionais em Engenharia DCA0304 Capítulo 4

Programa de Pós-Graduação Processo de Seleção 2 0 Semestre 2008 Exame de Conhecimento em Física

MATEMÁTICA A - 12o Ano Funções - Teorema de Bolzano Propostas de resolução

Expressão Semi-Empírica da Energia de Ligação

DIAGRAMA DE INTERLIGAÇÃO DE AUTOMAÇÃO EXXA -SL

Interpretação Geométrica. Área de um figura plana

PROVA MATRIZ DE MATEMÁTICA EFOMM-2009

MATRIZES. Matriz é uma tabela de números formada por m linhas e n colunas. Dizemos que essa matriz tem ordem m x n (lê-se: m por n), com m, n N*

Exercício: Exercício:

Estruturas de Dados. Parte deste material consiste de: Adaptações dos slides gentilmente cedidos pela Profa. Maria Cristina F.

Estes resultados podem ser obtidos através da regra da mão direita.

Código PE-ACSH-2. Título:

CASA DE DAVI CD VOLTARÁ PARA REINAR 1. DEUS, TU ÉS MEU DEUS. E B C#m A DEUS, TU ÉS MEU DEUS E SENHOR DA TERRA

Estratégias de Busca em Espaços de Estados

2.) O grafo de interseção de uma coleção de conjuntos A1;A2;...;An é o grafo que tem um vértice para cada um dos conjuntos da coleção e

Sumário Conjuntos Nebulosos - Introdução. Conjuntos Clássicos. Conjuntos Clássicos. Problemas/Conjuntos Clássicos. Operações com conjuntos clássicos

Aula 16 p. 1. 1:for Cada v V do 2: Make_Set(v) 3:for cada aresta (u, v) E do. 1:if Find_Set(u)=Find_Set(v)then. 5: Union(u, v)

Electromagnetismo e Óptica

INSTITUTO FEDERAL DA BAHIA CAMPUS JEQUIÉ LISTA DE EXERCÍCIOS DE MATEMÁTICA ALUNO:

a) 1. b) 0. c) xnw. d) q (Espm 2014) Se a matriz 7. (Pucrs 2014) Dadas as matrizes A = [ 1 2 3] a) 18 b) 21 c) 32 d) 126 e) 720 Se a matriz M=

Eu sou feliz, tu és feliz CD Liturgia II (Caderno de partituras) Coordenação: Ir. Miria T. Kolling

FUNÇÕES DE UMA VARIÁVEL COMPLEXA

Estratégias de Busca em Espaços de Estados

ANEXO II MODELO DE PROPOSTA

TOTAL PONTOS Nome: Data: / Hora: h m às h m Resolva os problemas e assinale a alternativa correspondente:

Simulado 7: matrizes, determ. e sistemas lineares

ESCOLA SUPERIOR DE TECNOLOGIA

GRANDEZAS PROPORCIONAIS

8/8 6/8 5/8 4/8 3/8 2/8 1/8 LAY-OUT DO QUADRO FOLHA 2 LAY-OUT DO QUADRO FOLHA 1 MOTIVO ÉRITON S. VER.

Transcrição:

Fonts Biliográis Estruturs Dos Aul 15: Árvors 24/05/2009 Livros: Introução Estruturs Dos (Cls, Crquir Rngl): Cpítulo 13; Projto Algoritmos (Nivio Zivini): Cpítulo 5; Estruturs Dos sus Algoritmos (Szwritr, t. l): Cpítulo 3; Algorithms in C (Sgwik): Cpítulo 5; Slis sos no mtril PUC-Rio, isponívl m http://www.in.purio.r/~in1620/. Introução Estruturs stus té gor não são qus pr rprsntr os qu vm sr ispostos mnir hirárqui Ex., hirrqui psts Árvor gnlógi Árvors são struturs qus pr rprsntção hirrquis Dinição Rursiv Árvor Um onjunto nós tl qu: xist um nó r, nomino riz, om zro ou mis suárvors, ujs rízs stão ligs r os nós rízs sts su-árvors são os ilhos r os nós intrnos árvor são os nós om ilhos s olhs ou nós xtrnos árvor são os nós sm ilhos

Forms rprsntção Rprsntção por prêntss ninhos ( A (B) ( C (D (G) (H)) (E) (F (I)))) Digrm Inlusão Rprsntção Hirárqui Suárvor Sj árvor im T = A, B,... A árvor T possui us suárvors: T T on T = B T = C, D,... A suárvor T possui 3 suárvors: T, T T on T = D, G, H, T = F, I, T = E As suárvors T, T, Tg, Th, Ti possum pns o nó riz nnhum suárvor. Exmplo (árvor xprssão) Rprsntção xprssão ritméti: ( + ( * ( / - ))) Conitos Básios Nós ilhos, pis, tios, irmãos vô Gru sí (númro ilhos um nó) Nó olh (gru sí nulo) nó intrior (gru sí irnt nulo) Gru um árvor (máximo gru sí) Florst (onjunto zro ou mis árvors)

Conitos Básios (2) Cminho Um squêni nós istintos v1, v2,..., vk, tl qu xist smpr ntr nós onsutivos (isto é, ntr v1 v2, ntr v2 v3,..., v(k-1) vk) rlção "é ilho ou "é pi " é nomin um minho n árvor. Comprimnto o Cminho Um minho vk vértis é otio pl squêni k-1 prs. O vlor k-1 é o omprimnto o minho. Nívl ou prouni um nó númro nós o minho riz té o nó. Conitos Básios (3) Nívl riz (prouni) é 0. Árvor Orn: é qul n qul ilhos nó stão ornos. Assum-s ornção squr pr irit. Est árvor é orn? Conitos Básios (4) Árvor Chi: Um árvor gru é um árvor hi s possui o númro máximo nós, isto é, toos os nós têm númro máximo ilhos xto s olhs, tos s olhs stão n msm ltur. Árvor hi gru 2: implmntção squnil. Exmplo Árvor inári rprsntno xprssõs ritmétis ináris Nós olhs rprsntm os oprnos Nós intrnos rprsntm os oprors (3+6)*(4-1)+5 Armznmnto por nívl: posição o nó posição os ilhos o nó 1 2,3 2 4,5 3 6,7 i (2i,2i+1)

Árvors Bináris Notção txtul árvor vzi é rprsnt por <> árvors não vzis por <riz s s> Exmplo: < < <> <<><>> > < <<><>> <<><>>> > Árvor Binári Um árvor m qu nó tm zro, um ou ois ilhos Um árvor inári é: um árvor vzi; ou um nó riz om us su-árvors: suárvor irit (s) suárvor squr (s) Árvors Bináris Implmntção m C Rprsntção: pontiro pr o nó riz Rprsntção um nó n árvor: Estrutur m C ontno A inormção proprimnt it (xmplo: um rtr, ou intiro) Dois pontiros pr s su-árvors, à squr à irit strut rv hr ino; strut rv* sq; strut rv* ir; ; TAD Árvors Bináris Impl. m C (rv.h) typ strut rv Arv; //Cri um árvor vzi Arv* rv_rivzi (voi); //ri um árvor om inormção o nó riz, //om suárvor squr suárvor irit Arv* rv_ri (hr, Arv*, Arv* ); //lir o spço mmóri oupo pl árvor Arv* rv_lir (Arv* ); //rtorn tru s árvor stivr vzi ls //so ontrário int rv_vzi (Arv* ); //ini oorrêni (1) ou não (0) o rtr int rv_prtn (Arv*, hr ); //imprim s inormçõs os nós árvor voi rv_imprim (Arv* );

TAD Árvors Bináris Implmntção m C Implmntção s unçõs: implmntção m grl rursiv us inição rursiv strutur Um árvor inári é: um árvor vzi; ou um nó riz om us su-árvors: su-árvor irit (s) su-árvor squr (s) TAD Árvors Bináris Implmntção m C unção rv_rivzi ri um árvor vzi Arv* rv_rivzi (voi) rturn NULL; TAD Árvors Bináris Implmntção m C unção rv_ri ri um nó riz s inormção s us su-árvors, squr irit rtorn o nrço o nó riz rio Arv* rv_ri (hr, Arv* s, Arv* s) Arv* p=(arv*)mllo(sizo(arv)); p->ino = ; p->sq = s; p->ir = s; rturn p; TAD Árvors Bináris Implmntção m C rv_rivzi rv_ri s us unçõs pr rição árvors rprsntm os ois sos inição rursiv árvor inári: um árvor inári Arv* ; é vzi =rv_rivzi() é ompost por um riz us su-árvors =rv_ri(,s,s);

TAD Árvors Bináris Implmntção m C unção rv_vzi ini s um árvor é ou não vzi int rv_vzi (Arv* ) rturn ==NULL; TAD Árvors Bináris Implmntção m C unção rv_lir lir mmóri lo pl strutur árvor s su-árvors vm sr lirs nts s lirr o nó riz rtorn um árvor vzi, rprsnt por NULL Arv* rv_lir (Arv* ) i (!rv_vzi()) rv_lir(->sq); /* lir s */ rv_lir(->ir); /* lir s */ r(); /* lir riz */ rturn NULL; TAD Árvors Bináris Implmntção m C unção rv_prtn vrii oorrêni um rtr m um os nós rtorn um vlor oolno (1 ou 0) inino oorrêni ou não o rtr n árvor int rv_prtn (Arv*, hr ) i (rv_vzi()) rturn 0; /* árvor vzi: não nontrou */ ls rturn ->ino== rv_prtn(->sq,) rv_prtn(->ir,); TAD Árvors Bináris Implmntção m C unção rv_imprim prorr rursivmnt árvor, visitno toos os nós imprimino su inormção voi rv_imprim (Arv* ) i (!rv_vzi()) print("% ", ->ino); /* mostr riz */ rv_imprim(->sq); /* mostr s */ rv_imprim(->ir); /* mostr s */

Exmplo Crir árvor < < <> < <><>> > < < <><> > < <><> > > > Exmplo Crir árvor < < <> < <><>> > < < <><> > < <><> > > > /* su-árvor '' */ Arv* 1= rv_ri('',rv_rivzi(),rv_rivzi()); /* su-árvor '' */ Arv* 2= rv_ri('',rv_rivzi(),1); /* su-árvor '' */ Arv* 3= rv_ri('',rv_rivzi(),rv_rivzi()); /* su-árvor '' */ Arv* 4= rv_ri('',rv_rivzi(),rv_rivzi()); /* su-árvor '' */ Arv* 5= rv_ri('',3,4); /* árvor '' */ Arv* = rv_ri('',2,5 ); Arv* = rv_ri(, rv_ri(, rv_rivzi(), rv_ri(, rv_rivzi(), rv_rivzi()) ), rv_ri(, rv_ri(, rv_rivzi(), rv_rivzi()), rv_ri(, rv_rivzi(), rv_rivzi()) ) ); Exmplo Exmplo Arsnt nós x, y z Lir nós ->sq->sq = rv_ri( x, rv_ri( y, rv_rivzi(), rv_rivzi()), rv_ri( z, rv_rivzi(), rv_rivzi()) ); x ->ir->sq = rv_lir(->ir->sq); x y z y z

Orm Prurso (ou trvssi) Árvors Bináris Pré-orm: trt riz, prorr s, prorr s xmplo: Orm simétri (ou In-Orm): prorr s, trt riz, prorr s xmplo: Pós-orm: prorr s, prorr s, trt riz xmplo: Orm Prurso - Exríios Fzr prurso Pré-orm In-orm Pós-orm Pr-orm +*+36-415 In-orm 3+6*4-1+5 Pós-orm 36+41-*5+ Pré-Orm Implmntção rursiv In-Orm Implmntção rursiv voi rv_prorm (Arv* ) i (!rv_vzi()) pross(); // por xmplo imprim rv_prorm(->sq); rv_prorm(->ir); voi rv_inorm (Arv* ) i (!rv_vzi()) rv_inorm (->sq); pross (); // por xmplo imprim rv_inorm (->ir);

Pós-Orm Implmntção rursiv voi rv_posorm (Arv* ) i (!rv_vzi()) rv_posorm (->sq); rv_posorm (->ir); pross (); // por xmplo imprim Prgunt unção rv_prtn Pré-orm, pós-orm ou in-orm? int rv_prtn (Arv*, hr ) i (rv_vzi()) rturn 0; /* árvor vzi: não nontrou */ ls rturn ->ino== rv_prtn(->sq,) rv_prtn(->ir,); Prgunt unção rv_lir Pré-orm, pós-orm ou in-orm? Arv* rv_lir (Arv* ) i (!rv_vzi()) rv_lir(->sq); /* lir s */ rv_lir(->ir); /* lir s */ r(); /* lir riz */ rturn NULL; Árvors Bináris - Altur Propri s árvors Exist pns um minho riz pr qulqur nó Altur um árvor omprimnto o minho mis longo riz té um s olhs ltur um árvor om um únio nó riz é zro ltur um árvor vzi é -1 Esorço omputionl nssário pr lnçr qulqur nó árvor é proporionl à ltur árvor Exmplo: h = 2

Árvors Bináris - onitos Nívl um nó riz stá no nívl 0, sus ilhos irtos no nívl 1,... o último nívl árvor é ltur árvor Árvors Bináris - onitos Árvor Chi toos os sus nós intrnos têm us su-árvors ssois númro n nós um árvor hi ltur h n = 2 h+1-1 nívl 0 nívl 1 nívl 2 Árvors Bináris - onitos Árvor Dgnr Nós intrnos têm um úni suárvor ssoi Vir um strutur linr Arvor ltur h tm n = h+1 Exríios Esrvr um unção rursiv qu lul ltur um árvor inári. A ltur um árvor é igul o máximo nívl sus nós. Altur um árvor Importnt mi iiêni (visitção o nó) Árvor om n nós: Altur mínim proporionl log n (árvor inári hi) Altur máxim proporionl n (árvor gnr)

Rsposts stti int mx2 (int, int ) rturn ( > )? : ; int rv_ltur (Arv* ) i (rv_vzi()) rturn -1; ls rturn 1 + mx2 (rv_ltur (->sq), rv_ltur (->ir)); Exríios Esrvr o lgoritmo visit m Pré-Orm utilizno loção inâmi ms sm utilizr proimntos rursivos. Utilizr pilh (inino um vtor qu po sr sso plo topo) pr sr o nrço suárvor qu rst à irit. prossr riz A gurr A n pilh pr por ssr C pois pss à B pross ss suárvor im pr D rtorn B (topo pilh) pr ssr D qu é suárvor squr Rsposts voi rv_prorm (Arv* ) Arv* A[MAX]; //qul sri o vlor mx? Arv* p; Arv* riz; int topo; int ou; topo = 0; p = ; ou = rv_vzi(); //iniilizçõs whil (!ou) // nqunto houvr nós pr prossr whil (!rv_vzi(p)) pross (p->ino); topo++; A[topo] = p; p = p->sq; i (topo!= 0) p = A[topo]->ir; topo--; ls ou = 1; Pr s Fzr unção pr rtornr o pi um o nó um árvor Do um itm, prour s itm xist n árvor (usno lgum lgoritmo trvssi) Cso positivo rtorn o ontúo o pi o nó Po sr rursivo ou não