Estruturas de Dados e Algoritmos (C/C++) Aula 05 (Prof. Fábio) pag. 1. Aula 05 - Conteúdo

Tamanho: px
Começar a partir da página:

Download "Estruturas de Dados e Algoritmos (C/C++) Aula 05 (Prof. Fábio) pag. 1. Aula 05 - Conteúdo"

Transcrição

1 struturas de ados e lgoritmos (/++) ula 05 (Prof. ábio) pag. ula 05 - onteúdo ) Árvores e suas representações ) Árvore inária e suas representações ) Percursos em Árvores inárias ) mplementações dos algoritmos sobre árvores binárias 5) Representação de árvores por meio de árvores binárias 6) xercícios Árvores Terminologia ásica Árvore é um conjunto finito de um ou mais nós de tal natureza que: (i) existe um nó especialmente designado denominado raiz. (ii) os nós restantes estão desdobrados em n conjuntos (n 0) separados T, T... T n em que cada um dos referidos conjuntos se constitui numa árvore. Os conjuntos T, T... T n se denominam as subárvores da raiz. Obs.: T, T... T n são conjuntos individuais, ou seja, subárvores não podem ser interligadas (não deve haver procriação entre elementos). efinições: grau de um nó: número de subárvores de um nó grau da árvore: grau máximo entre os nós da árvore folhas: nós com grau 0 (também chamados nós terminais) filhos: raízes das subárvores de um nó pai de um nó: raiz da subárvore que contem este nó irmãos: nós que são filhos do mesmo pai nível: define- se inicialmente que a raiz está no nível. partir deste ponto temos que os filhos da raiz estão no nível, os filhos dos filhos da raiz estão no nível e assim sucessivamente. altura ou profundidade: nível máximo entre os nós de uma árvore antepassados de um nó: seqüência de nós ao longo da raiz até este nó floresta: conjunto de n árvores separadas (n 0 ). noção de floresta se aproxima muito da noção de árvore pois se retirarmos a raiz obtemos uma floresta xemplo : Nível J K L M

2 struturas de ados e lgoritmos (/++) ula 05 (Prof. ábio) pag. Podemos afirmar sobre a árvore acima: a árvore tem nós a raiz é o nó o grau da árvore é o grau do nó é, o grau do nó é e o grau do nó é 0 as folhas da árvore são K, L,,, M,, J os demais nós são chamados de nós não terminais os filhos do nó são os nós, e J o pai do nó é o nó os nós, e J são irmãos. os antepassados do nó M são os nós, e. nível do nó é, do nó é e do nó M é a altura da árvore é Representação de Árvores a) estrutura em forma de lista árvore do exemplo pode ser representada pela seguinte lista de nós: ((((K,L),),(),((M),,J))) b) estrutura utilizando apontadores ados pont. pont.... pont. n xemplos de representação com apontadores a) utilizando vetor de apontadores M L 0 J 9 -- K Raiz = 5 Livre = b) utilizando apontador e alocação dinâmica - lista de apontadores J K L M

3 struturas de ados e lgoritmos (/++) ula 05 (Prof. ábio) pag. Árvores inárias efinição: é um conjunto finito de nós, que se apresenta vazio ou que consiste de uma raiz e de duas árvores binárias separadas, denominadas a subárvore esquerda e a subárvore direita. obs.: numa árvore binária não existe nó com grau superior a dois. obs.: uma árvore binária completa de profundidade k é uma árvore binária com k- nós. Não existe árvore vazia (nós com grau zero), ao passo que existe um árvore binária vazia. Se considerarmos as duas árvores abaixo como sendo árvores binárias podemos afirmar que elas são diferentes pois a primeira tem subárvore direita vazia e a segunda tem subárvore esquerda vazia. Se as considerarmos como árvores elas seriam idênticas, apenas desenhadas de maneira diferente. onsidere as árvores binárias abaixo: Nível (a) (b) J K L M N O 5 Lema: i) o número máximo de nós do nível k de uma árvore binária é k-, k. ii) o número máximo de nós numa árvore binária de profundidade n é n -, n. Prova lema (i): ndução em k ase da ndução: a raiz é o único nó no nível k = logo o número máximo de nós no níve k = é k- = 0 =. ipótese para ndução: provar que no nível k temos k- nós. No nível k- temos k- nós. omo a árvore tem grau máximo, no nível k temos. k- nós, ou seja, k- nós.

4 k i= struturas de ados e lgoritmos (/++) ula 05 (Prof. ábio) pag. Prova lema (ii) O número máximo de nós numa árvore binária de profundidade k é de ( nº má ximo denós do nível i) k i ( ) k = i=. Representação de Árvores inárias studaremos dois modos de representar árvores binárias: a representação seqüencial e a representação ligada. Na representação ligada veremos como implementar uma árvore binária utilizando um vetor de apontadores e utilizando alocação dinâmica. a) Representação seqüencial Nesta representação os nós são numerados por nível e da esquerda para a direita, pois dessa maneira, os nós podem ser armazenados num vetor, sendo que o nó de número k será armazenado na posição k do vetor. Nível J K L M N O Seja uma árvore binária completa com n nós representados seqüencialmente. Para qualquer nó com índice k, k n temos: a) Pai(k) está em int(k/) sendo k. Se k = 0, k é a raiz b) ilhosq(k) está em k, se k n. Se k > n então k não tem filho esquerdo. c) ilhoir(k) está em k +, se k + n. Se k + > n então k não tem filho direito. Para árvores binárias completas, a representação é ideal pois não há perda de espaço. Para árvores assimétricas ocorrerá perda, sendo que, no pior caso, uma árvore assimétrica de profundidade k exigirá k- posições e só ocupará k posições (lista linear).

5 struturas de ados e lgoritmos (/++) ula 05 (Prof. ábio) pag (a) : 6 : : : 8 (b) J K L M N O J K L M N O Vantagens e desvantagens da representação seqüencial Vantagens: estrutura e algoritmos simples, rapidez no acesso ao pai e aos filhos de um nó. esvantagens: perda de espaço para árvores assimétricas (exemplo a), inserções e deleções de nós no meio da árvore exigem uma reorganização do vetor. b) Representação Ligada sta representação pode ser implementada, dentre outras maneiras, através de um vetor ou através de alocação dinâmica, ambos modos utilizando apontadores (por isso chamada de representação ligada).

6 struturas de ados e lgoritmos (/++) ula 05 (Prof. ábio) pag. 6 b.) Utilizando um vetor J K L M N O b.) Utilizando alocação dinâmica Raiz = nfo sq ir J M L K O N squema da estrutura de dados ilho squerdo nformação ilho ireiro Raiz J K L M N O s estruturas acima apresentadas dificultam a determinação do pai de um nó. Se for essencial este tipo de acesso pode-se adicionar mais um campo de modo a armazenar uma referência ao pai do nó. Operações em Árvores inárias Para construirmos uma árvore binária devemos definir as seguintes operações: riarv(x): cria uma árvore binária de um único nó com informação x e devolve um apontador para esta árvore.

7 struturas de ados e lgoritmos (/++) ula 05 (Prof. ábio) pag. 7 nssq(p,x): cria um novo nó, contendo a informação x, a esquerda do nó apontado por p. Se p Null ocorrerá um erro. nsir(p,x): cria um novo nó, contendo a informação x, a direita do nó apontado por p. Se p Null ocorrerá um erro. nfo(p): retorna a informação contida no nó apontado por p. ilhosq(p): retorna o apontador para o filho esquerdo de p. ilhoir(p): retorna o apontador para o filho direito de p. rmão(p): retorna o apontador para o irmão de p. Pai(p): retorna o apontador para o pai de p. O Programa abaixo implementa as operações descritas e cria a seguinte árvore binária (arquivo x50.cpp): #include <iostream.h> struct No int nfo; struct No *ir, *sq, *Pai; ; struct No *Raiz; struct No *riarv(int x) struct No *p; p = new struct No; p->nfo = x; p->sq = p->ir = p->pai = NULL; return(p); void nssq(struct No *p, int x) if ( p == NULL)cout << "rro: Árvore Vazia"; else if (p->sq!= NULL ) cout << "rro: inserção incorreta"; else p->sq = riarv(x); void nsir(struct No *p, int x) if ( p == NULL)cout << "rro: Árvore Vazia"; else if (p->sq!= NULL ) cout << "rro: inserção incorreta"; else p->ir = riarv(x); int nfo(struct No *p)

8 struturas de ados e lgoritmos (/++) ula 05 (Prof. ábio) pag. 8 if (p!= NULL ) return(p->nfo); return(-); struct No* ilhosq(struct No *p) if (p!= NULL ) return(p->sq); return(null); struct No* ilhoir(struct No *p) if (p!= NULL ) return(p->ir); return(null); struct No* Pai(struct No *p) if (p!= NULL ) return(p->pai); return(null); struct No* rmao(struct No *p) struct No *q; if (p!= NULL ) q = p->pai; if (q == NULL ) return NULL; //p é a raiz if ( q->sq == p ) return(q->ir); else return(q->sq); return(null); void main() struct No *pe,*pd; Raiz = riarv(5); nssq(raiz,); nsir(raiz,7); pe = ilhosq(raiz); pd = ilhoir(raiz); nssq(pe,); nsir(pe,); nssq(pd,6); nsir(pd,8);

9 struturas de ados e lgoritmos (/++) ula 05 (Prof. ábio) pag. 9 Percursos em Árvores inárias Para acessarmos os elementos de uma árvore binária devemos percorrer os seus nós através das referências que temos para os seus filhos esquerdo e direito. Para que este acesso não seja desordenado e aleatório e para que possamos desenvolver os algoritmos que exploram esta estrutura devemos estabelecer algumas regras para percorrer as árvores binárias. Tomaremos a seguinte convenção: representa percorrer a subárvore esquerda de um nó P representa o acesso a um nó (impressão, consulta, alteração, etc.) representa percorrer a subárvore direita de um nó Podemos formar seis combinações possíveis: P, P, P, P, P, P. dotando a norma de percorrer primeiro a árvore esquerda, temos três combinações: P - em ordem (in order) P - pós ordem (pos order) P - pré ordem (pre order) xemplos (a) P(in order): P(pre order): P(pos order): (b) in order P: pre order P: pos order P:

10 struturas de ados e lgoritmos (/++) ula 05 (Prof. ábio) pag. 0 (c) X in order P: K W R Y X M P K P pre order P: X K R W Y P M R pos order P: W Y R K M P X W Y M (d) / ^ + * in order P: / ^ * + pre order P: + * / ^ pos order P: ^ / * + obs: repare que existe uma correspondência entre percorrer as árvores em ordem, pós-ordem e pré-ordem com a notação infixa, pós fixa e pré fixa. baixo temos os algoritmos in order, pré order e pós order para percurso em árvores binárias: lgoritmo norder(t) Se T NULL então norder(t->sq) screva(t->nfo) norder(t->ir) fimse lgoritmo PreOrder(T) Se T NULL então screva(t->nfo) PreOder(T->sq) PreOrder(T->ir) fimse lgoritmo PosOrder(T) Se T NULL então PosOrder(T->sq) PosOrder(T->ir) screva(t->nfo) fimse

11 struturas de ados e lgoritmos (/++) ula 05 (Prof. ábio) pag. implementação destes algoritmos depende da estrutura de dados adotada. baixo mostraremos três formas de implementação: ) lgoritmos para percurso em árvores binárias utilizando representação ligada com alocação dinâmica e apontadores (arquivo x50.cpp). squema de estrutura ligada com alocação dinâmica T X sq nfo ir K M #include <iostream.h> #include <string.h> struct No char nfo[0]; struct No *ir, *sq; ; struct No *Raiz; continua a árvore... void norder(struct No *T) if ( T!= NULL ) norder(t->sq); cout << T->nfo << " "; norder(t->ir); void PreOrder(struct No *T) if ( T!= NULL ) cout << T->nfo << " "; PreOrder(T->sq); PreOrder(T->ir); void PosOrder(struct No *T) if ( T!= NULL ) PosOrder(T->sq); PosOrder(T->ir); cout << T->nfo << " "; void monta_arv_exemplo() struct No *p,*pe,*pd; Raiz = p = (struct No*) new struct No; strcpy(raiz->nfo,""); Raiz->sq=NULL; Raiz->ir=NULL; pe = (struct No*) new struct No; strcpy(pe->nfo,""); pe->sq=null; pe->ir=null;

12 struturas de ados e lgoritmos (/++) ula 05 (Prof. ábio) pag. pd = (struct No*) new struct No; strcpy(pd->nfo,""); pd->sq=null; pd->ir=null; p->sq = pe; p->ir = pd; p = Raiz->sq; //p aponta p/ o elemento da arvore pe = (struct No*) new struct No; strcpy(pe->nfo,""); pe->sq=null; pe->ir=null; pd = (struct No*) new struct No; strcpy(pd->nfo,""); pd->sq=null; pd->ir=null; p->sq = pe; p->ir = pd; p = pd; //p aponta p/ o elemento da arvore pe = (struct No*) new struct No; strcpy(pe->nfo,""); pe->sq=null; pe->ir=null; pd = (struct No*) new struct No; strcpy(pd->nfo,""); pd->sq=null; pd->ir=null; p->sq = pe; p->ir = pd; p = Raiz->ir; //p aponta p/ o elemento da arvore pd = (struct No*) new struct No; strcpy(pd->nfo,""); pd->sq=null; pd->ir=null; p->ir = pd; p = pd; //p aponta p/ o elemento da arvore pe = (struct No*) new struct No; strcpy(pe->nfo,""); pe->sq=null; pe->ir=null; p->sq = pe; void main() Raiz = NULL; monta_arv_exemplo(); norder(raiz); cout << endl; PreOrder(Raiz); cout << endl; PosOrder(Raiz); cout << endl; Os algoritmos de percurso em árvore foram implementados utilizando recursividade, entretanto podemos escrevê-los de forma não recursiva como mostrado abaixo para o caso do percurso n Order (arquivo x50.cpp). void nordernr(struct No *T) struct Pilha s; struct No *p; nicpilha(s); p = T; do while ( p!= NULL ) mpilha(s,p); p = p->sq; if (!PilhaVazia(s) ) esempilha(s,p); cout << p->nfo << " "; p = p->ir; while (!PilhaVazia(s) p!= NULL );

13 struturas de ados e lgoritmos (/++) ula 05 (Prof. ábio) pag. ) lgoritmos para percurso em árvores binárias utilizando representação ligada com vetor e apontadores (arquivo x50.cpp). #include <iostream.h> #include <string.h> #define MX_NO struct No char nfo[0]; int ir,sq; ; struct No rv[mx_no]; int Raiz, Livre; void norder(int T) if ( T!= - ) norder(rv[t].sq); cout << rv[t].nfo << " "; norder(rv[t].ir); void PreOrder(int T) if ( T!= - ) cout << rv[t].nfo << " "; PreOrder(rv[T].sq); PreOrder(rv[T].ir); void PosOrder(int T) if ( T!= - ) PosOrder(rv[T].sq); PosOrder(rv[T].ir); cout << rv[t].nfo << " "; void monta_arv_exemplo() Raiz = ; Livre = 7; strcpy(rv[0].nfo,""); rv[0].sq=-; rv[0].ir=-; strcpy(rv[].nfo,""); rv[].sq=-; rv[].ir=0; strcpy(rv[].nfo,""); rv[].sq=-; rv[].ir=-; strcpy(rv[].nfo,""); rv[].sq=9; rv[].ir=0; strcpy(rv[].nfo,""); rv[].sq=8; rv[].ir= ; strcpy(rv[5].nfo,""); rv[5].sq=-; rv[5].ir=-; strcpy(rv[6].nfo,"--"); rv[6].sq=; rv[6].ir=-; strcpy(rv[7].nfo,"--"); rv[7].sq=6; rv[7].ir=-; strcpy(rv[8].nfo,""); rv[8].sq=5; rv[8].ir=; strcpy(rv[9].nfo,""); rv[9].sq=-; rv[9].ir=-; strcpy(rv[0].nfo,""); rv[0].sq=; rv[0].ir=-; strcpy(rv[].nfo,"--");rv[].sq=-;rv[].ir=-; void main() Raiz = NULL; monta_arv_exemplo(); norder(raiz); cout << endl; PreOrder(Raiz); cout << endl; PosOrder(Raiz); cout << endl;

14 struturas de ados e lgoritmos (/++) ula 05 (Prof. ábio) pag. ) lgoritmos para percurso em árvores binárias utilizando representação seqüencial (arquivo x505.cpp). Relembrando. Para uma árvore binária representada seqüencialmente temos: a) Pai(k) está em int(k/) b) ilhosq(k) está em k c) ilhoir(k) está em k+ omo na linguagem os vetores iniciam na posição 0 devemos adaptar estas regras para esta particularidade da linguagem. ssim sendo temos: a) Pai(k) está em int((k-)/) b) ilhosq(k) está em k+ c) ilhoir(k) está em k+ #include <iostream.h> #include <string.h> #define MX_NO 0 struct No char nfo[0]; int xisteno; //indica se o nó existe ; struct No rv[mx_no]; void norder(int T) if ( rv[t].xisteno!= 0 ) norder(*t + ); cout << rv[t].nfo << " "; norder(*t + ); void PreOrder(int T) if ( rv[t].xisteno!= 0 ) cout << rv[t].nfo << " "; PreOrder(*T + ); PreOrder(*T + ); void PosOrder(int T) if ( rv[t].xisteno!= 0 ) PosOrder(*T + ); PosOrder(*T + ); cout << rv[t].nfo << " "; void monta_arv_exemplo() strcpy(rv[ 0].nfo,""); rv[ 0].xisteNo = ; strcpy(rv[ ].nfo,""); rv[ ].xisteno = ; strcpy(rv[ ].nfo,""); rv[ ].xisteno = ; strcpy(rv[ ].nfo,""); rv[ ].xisteno = ; strcpy(rv[ ].nfo,""); rv[ ].xisteno = ; strcpy(rv[ 5].nfo,"-"); rv[ 5].xisteNo = 0; strcpy(rv[ 6].nfo,""); rv[ 6].xisteNo = ; strcpy(rv[ 7].nfo,"-"); rv[ 7].xisteNo = 0;

15 struturas de ados e lgoritmos (/++) ula 05 (Prof. ábio) pag. 5 strcpy(rv[ 8].nfo,"-"); rv[ 8].xisteNo = 0; strcpy(rv[ 9].nfo,""); rv[ 9].xisteNo = ; strcpy(rv[0].nfo,""); rv[0].xisteno = ; strcpy(rv[].nfo,"-"); rv[].xisteno = 0; strcpy(rv[].nfo,"-"); rv[].xisteno = 0; strcpy(rv[].nfo,""); rv[].xisteno = ; strcpy(rv[].nfo,"-"); rv[].xisteno = 0; for(int k=5; k < 0; k++) rv[k].xisteno = 0; void main() monta_arv_exemplo(); //o índice 0 indica a raiz da árvore norder(0); cout << endl; //binária na representação seqüencial PreOrder(0); cout << endl; PosOrder(0); cout << endl; Representação de Árvores por Árvores inárias Podemos representar qualquer árvore sob a forma de árvore binária. sto é importante pois os métodos utilizados para representação de árvores normalmente têm algumas características indesejáveis, como por exemplo nós de tamanho variável. o chegar á representação de árvore binária para árvore vamos implicitamente nos servir do fato de que não tem importância a seqüência dos filhos de um nó. Originalmente a estrutura de árvore binária foi definida do seguinte dado: squema de estrutura ligada com alocação dinâmica T X sq nfo ir K M continua a árvore... Para representar uma árvore como árvore binária, mudamos apenas a relação entre os nós da forma abaixo (note que a estrutura não foi alterada). Repare também que, com esta mudança, o filho direito da raiz da árvore binária estará sempre vazio pois, neste caso, a raiz não possui irmãos. ilho nfo rmão xemplos Árvore Árvore inária ou

16 struturas de ados e lgoritmos (/++) ula 05 (Prof. ábio) pag. 6 Árvore Árvore inária J J Por outro lado, uma floresta pode ser transformada numa única árvore binária utilizando para isto o campo filho direito (no caso irmão) da raiz da árvore binária. xemplo: loresta com três árvore Árvore binária representando a floresta

17 struturas de ados e lgoritmos (/++) ula 05 (Prof. ábio) pag. 7 xercícios Resolva os exercícios 5.0, 5.0 e 5.0 utilizando as árvores binárias abaixo: (a) (b) X (c) / \ / \ / \ Y Z X Y / \ / \ \ \ / \ / \ K W K Z W R P \ \ / / \ / \ / \ J R S T U / / / \ M N (d) (e) / \ / \ K W K / \ / \ / \ \ M Y Z / \ \ \ / \ / \ J N R S T U / \ \ M N 5.0) Represente as árvores binárias acima utilizando a representação seqüencial. 5.0) Represente as árvores binárias acima utilizando a representação ligada com vetor (distribua os dados da árvore da maneira que você desejar dentro do vetor). 5.0) Qual a seqüência de nós visitados se percorrermos as árvores binárias acima segundo os algoritmos in order, pre order e pos order? 5.0) ltere o programa x50.cpp (árvore binária com alocação dinâmica representação ligada) para armazenar um cadastro de pessoas contendo Nome (string 0), idade (inteiro) e sexo (caracter). 5.05) ltere o programa x50.cpp (árvore binária com vetor representação ligada) para armazenar um cadastro de s contendo Titulo do (string 0), número de músicas (inteiro) e preço (real). 5.06) ltere o programa x505.cpp (árvore binária representação seqüencial) para armazenar um cadastro de Livros contendo Titulo do livro (string 0), número de páginas (inteiro) e preço (real). 5.07) laborar função para contar o número de nós de uma árvore binária. 5.08) laborar função para contar o número de folhas de uma árvore binária. Utilize a representação ligada com alocação dinâmica. 5.09) laborar uma função para determinar a altura de uma árvore binária. 5.0) laborar uma função para imprimir apenas os nós de um determinado nível de uma árvore binária. 5.) laborar uma função para encontrar o pai de um nó (considerar que esta estrutura não possui um apontador para o nó pai). 5.) laborar uma função para encontrar o irmão de um nó (considerar que esta estrutura não possui um apontador para o nó pai).

18 struturas de ados e lgoritmos (/++) ula 05 (Prof. ábio) pag. 8 5.) Represente as árvores abaixo por meio de árvores binárias (a) (b) X / \ / \ Y W Z / \ // \\ / \ R M N K M \ \ \ // \\ / \ J RS T UV / \ Respostas 5.0) representação seqüencial árvore (a) K J - 5.0) representação ligada com vetor árvore (a) nfo -- J K sq ir Raiz = Livre = 6 5.0) percorrer as árvores binárias segundo os algortimos n, Pre e Pos Order árvore (a) n Order(P): J K Pre Order(P): K J Pos Order(P): J K 5.0) ste é por sua conta. ivirta-se! penas uma dica. estrutura para este exercício pode ser como a mostrada abaixo: struct No char Nome[0]; int dade; char Sexo; struct No *ir, *sq; ; struct No *Raiz; 5.05) ste é por sua conta. 5.06) ste é por sua conta. 5.07) contar o número de nós de uma árvore binária int ontanos(struct No *T) if ( T == NULL ) return(0);

19 struturas de ados e lgoritmos (/++) ula 05 (Prof. ábio) pag. 9 else return( + ontanos(t->sq) + ontanos(t->ir)); 5.08) contar o número de nós de uma árvore binária int ontaolhas(struct No *T) if ( T == NULL ) return(0); else if (T->sq == NULL && T->ir == NULL ) return(); else return( ontaolhas(t->sq) + ontaolhas(t->ir)); 5.09) ste é por sua conta. ivirta-se! 5.0) ste também. 5.) ste também. 5.) ste também. 5.) ste também.

Árvores. Listas e árvores. Árvores. Árvores. Árvores. Árvores 03/11/2011. Listas lineares

Árvores. Listas e árvores. Árvores. Árvores. Árvores. Árvores 03/11/2011. Listas lineares istas e árvores istas lineares Um nó após o outro, adjacentes Sem relações hierárquicas entre os nós, em geral S-502 lgoritmos e struturas de ados iversas aplicações necessitam de estruturas mais complexas

Leia mais

Árvores. Algoritmos e Estruturas de Dados I. José Augusto Baranauskas Departamento de Física e Matemática FFCLRP-USP

Árvores. Algoritmos e Estruturas de Dados I. José Augusto Baranauskas Departamento de Física e Matemática FFCLRP-USP Árvores lgoritmos e Estruturas de Dados I Nesta aula veremos conceitos e definições sobre árvores Diferentemente das estruturas de pilhas, filas e listas que são lineares, uma árvore é uma estrutura de

Leia mais

Árvores & Árvores Binárias

Árvores & Árvores Binárias SCE 182 SCC122 Algoritmos Estruturas e Estruturas de Dados de Dados I Árvores & Árvores Binárias Prof. Material Original: Walter Aoiama Nagai; Maria das Graças Volpe Nunes; Definições Árvore T é um conjunto

Leia mais

Árvores Binárias. SCC Algoritmos e Estruturas de Dados I. Prof. Fernando V. Paulovich

Árvores Binárias. SCC Algoritmos e Estruturas de Dados I. Prof. Fernando V. Paulovich Árvores Binárias SCC0202 - Algoritmos e Estruturas de Dados I Prof. Fernando V. Paulovich *Baseado no material do Prof. Gustavo Batista. Figuras editadas por Isadora Maria Mendes http://www.icmc.usp.br/~paulovic

Leia mais

Algoritmos e Estrutura de Dados II. Árvore. Prof a Karina Oliveira.

Algoritmos e Estrutura de Dados II. Árvore. Prof a Karina Oliveira. Algoritmos e Estrutura de Dados II Árvore Prof a Karina Oliveira kkco@dei.unicap.br Introdução Estruturas de dados lineares (pilha, fila) são estruturas que guardam coleções de elementos que são acessados

Leia mais

Árvores & Árvores Binárias

Árvores & Árvores Binárias Árvores & Árvores Binárias Problema Implementações do TAD Lista Linear Lista encadeada eficiente para inserção e remoção dinâmica de elementos, mas ineficiente para busca Lista seqüencial (ordenada) Eficiente

Leia mais

Árvores. SCC-202 Algoritmos e Estruturas de Dados I. Lucas Antiqueira

Árvores. SCC-202 Algoritmos e Estruturas de Dados I. Lucas Antiqueira Árvores SCC-202 Algoritmos e Estruturas de Dados I Lucas Antiqueira Listas e árvores Listas lineares Um nó após o outro, adjacentes Nó sucessor e antecessor Diversas aplicações necessitam de estruturas

Leia mais

Aula T13 BCC202 Árvores. Túlio Toffolo

Aula T13 BCC202 Árvores. Túlio Toffolo Aula T13 BCC202 Árvores Túlio Toffolo www.decom.ufop.br/toffolo Conceitos básicos n Organiza um conjunto de acordo com uma estrutura hierárquica. n Contém elementos que são chamados de nós n O pai de todos

Leia mais

Aula 08. Estruturas de dados Árvore e Grafo

Aula 08. Estruturas de dados Árvore e Grafo Logo Aula 08 Estruturas de dados Árvore e Grafo 2 Árvore Estruturas estudadas até agora não são \ adequadas para representar dados que devem ser dispostos de maneira hierárquica Ex., hierarquia de pastas

Leia mais

Árvores. David Menotti Algoritmos e Estruturas de Dados II DInf UFPR

Árvores. David Menotti Algoritmos e Estruturas de Dados II DInf UFPR Árvores David Menotti Algoritmos e Estruturas de Dados II DInf UFPR Conceitos básicos Organiza um conjunto de acordo com uma estrutura hierárquica. Contém elementos que são chamados de nós O pai de todos

Leia mais

DAINF - Departamento de Informática

DAINF - Departamento de Informática DAINF - Departamento de Informática Algoritmos 2 - Árvore binária de busca Prof. Alex Kutzke ( http://alex.kutzke.com.br/courses ) 30 de Novembro de 2015 Slides adaptados do material produzido pelo Prof.

Leia mais

AED2 - Aula 04 Vetores ordenados e árvores de busca

AED2 - Aula 04 Vetores ordenados e árvores de busca AED2 - Aula 04 Vetores ordenados e árvores de busca Considere um vetor ordenado v de tamanho n. Ele suporta as seguintes operações: busca - dada uma chave k, devolva um apontador para um objeto com esta

Leia mais

Árvores. Prof. César Melo DCC/ICE/UFAM

Árvores. Prof. César Melo DCC/ICE/UFAM Árvores Prof. César Melo DCC/ICE/UFAM Introdução As estruturas anteriores são chamadas de unidimensionais (ou lineares) Exemplo são vetores e listas Não podem ser usadas como hierarquias. Exemplo: árvore

Leia mais

ESTRUTURA DE DADOS. Árvores, árvores binárias e percursos. Cristina Boeres

ESTRUTURA DE DADOS. Árvores, árvores binárias e percursos. Cristina Boeres ESTRUTURA DE DADOS Árvores, árvores binárias e percursos Cristina Boeres 2 Árvores! utilizada em muitas aplicações! modela uma hierarquia entre elementos árvore genealógica diagrama hierárquico de uma

Leia mais

Árvores. Prof. César Melo DCC/ICE/UFAM

Árvores. Prof. César Melo DCC/ICE/UFAM Árvores Prof. César Melo DCC/ICE/UFAM Introdução As estruturas anteriores são chamadas de unidimensionais (ou lineares) Exemplo são vetores e listas Não adequadas para representar hierarquias. Exemplo:

Leia mais

SUMÁRIO. Fundamentos Árvores Binárias Árvores Binárias de Busca

SUMÁRIO. Fundamentos Árvores Binárias Árvores Binárias de Busca ÁRVORES SUMÁRIO Fundamentos Árvores Binárias Árvores Binárias de Busca 2 ÁRVORES Utilizadas em muitas aplicações Modelam uma hierarquia entre elementos árvore genealógica Diagrama hierárquico de uma organização

Leia mais

Pesquisa em Memória Primária Árvores de Busca. David Menotti Algoritmos e Estruturas de Dados II DInf UFPR

Pesquisa em Memória Primária Árvores de Busca. David Menotti Algoritmos e Estruturas de Dados II DInf UFPR Pesquisa em Memória Primária Árvores de Busca David Menotti Algoritmos e Estruturas de Dados II DInf UFPR Árvores de Pesquisa A árvore de pesquisa é uma estrutura de dados muito eficiente para armazenar

Leia mais

Árvores. Prof. Byron Leite Prof. Tiago Massoni Prof. Fernando Buarque. Engenharia da Computação. Poli - UPE

Árvores. Prof. Byron Leite Prof. Tiago Massoni Prof. Fernando Buarque. Engenharia da Computação. Poli - UPE Árvores Prof. Byron Leite Prof. Tiago Massoni Prof. Fernando Buarque Engenharia da Computação Poli - UPE Motivação Para entradas realmente grandes, o acesso linear de listas é proibitivo Estrutura de dados

Leia mais

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

Fontes Bibliográficas. Estruturas de Dados Aula 15: Árvores. Livros: Fontes Bibliográficas Estruturas de Dados Aula 15: Árvores Livros: Introdução a Estruturas de Dados (Celes, Cerqueira e Rangel): Capítulo 13; Projeto de Algoritmos (Nivio Ziviani): Capítulo 5; Estruturas

Leia mais

Aula 19: Percursos em árvores binárias. Percurso em pré-ordem, ordem simétrica e pós-ordem. Algoritmo para cálculo de altura uma árvore binária

Aula 19: Percursos em árvores binárias. Percurso em pré-ordem, ordem simétrica e pós-ordem. Algoritmo para cálculo de altura uma árvore binária 19.1 ula 19: Percursos em árvores binárias Percurso em pré-ordem, ordem simétrica e pós-ordem lgoritmo para cálculo de altura uma árvore binária omplexidade dos métodos 19.2 ula 19: Percursos em árvores

Leia mais

Prova de Recuperação PMR3201/PMR2300 1o. semestre 2015 Prof. Thiago Martins

Prova de Recuperação PMR3201/PMR2300 1o. semestre 2015 Prof. Thiago Martins Prova de Recuperação PMR21/PMR2 1o. semestre 2 Prof. Thiago Martins Instruções: screva o nome e o número USP na folha de papel almaço. 1. (2 pontos) Uma pilha é uma estrutura de dados na qual o elemento

Leia mais

Árvores Binárias Balanceadas Estrutura de Dados I

Árvores Binárias Balanceadas Estrutura de Dados I - entro de iências Exatas, Naturais e de Saúde Departamento de omputação Árvores inárias alanceadas Estrutura de Dados I OM06992 - Estrutura de Dados I Prof. Marcelo Otone guiar marcelo.aguiar@ufes.br

Leia mais

Árvores. Thiago Martins, Fabio Gagliardi Cozman. PMR2300 / PMR3201 Escola Politécnica da Universidade de São Paulo

Árvores. Thiago Martins, Fabio Gagliardi Cozman. PMR2300 / PMR3201 Escola Politécnica da Universidade de São Paulo PMR2300 / PMR3201 Escola Politécnica da Universidade de São Paulo Árvore: estrutura composta por nós e arestas entre nós. As arestas são direcionadas ( setas ) e: um nó (e apenas um) é a raiz; todo nó

Leia mais

Aula 16: Pesquisa em Memória Primária - Árvores de Busca. Bruno Hott Algoritmos e Estruturas de Dados I DECSI UFOP

Aula 16: Pesquisa em Memória Primária - Árvores de Busca. Bruno Hott Algoritmos e Estruturas de Dados I DECSI UFOP Aula 16: Pesquisa em Memória Primária - Árvores de Busca Bruno Hott Algoritmos e Estruturas de Dados I DECSI UFOP Árvores de Pesquisa A árvore de pesquisa é uma estrutura de dados muito eficiente para

Leia mais

ÁRVORES E ÁRVORES BINÁRIAS. Vanessa Braganholo Estruturas de Dados e Seus Algoritmos

ÁRVORES E ÁRVORES BINÁRIAS. Vanessa Braganholo Estruturas de Dados e Seus Algoritmos ÁRVORES E ÁRVORES BINÁRIAS Vanessa Braganholo Estruturas de Dados e Seus Algoritmos ÁRVORES Árvores Árvores Binárias INSTITUTO DE COMPUTAÇÃO - UFF 2 ÁRVORES Fonte de consulta: Szwarcfiter, J.; Markezon,

Leia mais

Árvores & Árvores Binárias

Árvores & Árvores Binárias SCE 182 SCC122 Algoritmos Estruturas e Estruturas de Dados de Dados I Árvores & Árvores Binárias Prof. Material Original: Walter Aoiama Nagai; Maria das Graças Volpe Nunes; Definições Árvore T é um conjunto

Leia mais

ÁRVORE B. Vanessa Braganholo Estruturas de Dados e Seus Algoritmos

ÁRVORE B. Vanessa Braganholo Estruturas de Dados e Seus Algoritmos ÁRVORE B Vanessa Braganholo Estruturas de Dados e Seus Algoritmos INTRODUÇÃO 2 ARQUIVOS DE ACESSO DIRETO Basicamente, duas formas de acesso a um registro: Acesso via cálculo do endereço do registro (hashing)

Leia mais

Árvores Binárias. 16/11 Representação e Implementação: Encadeada Dinâmica O TAD

Árvores Binárias. 16/11 Representação e Implementação: Encadeada Dinâmica O TAD Árvores Binárias 16/11 Representação e Implementação: Encadeada Dinâmica O TAD ED AB, encadeada dinâmica Para qualquer árvore, cada nó é do tipo info esq dir typedef int elem; typedef struct arv *Arv;

Leia mais

Árvores de Pesquisa (Parte I)

Árvores de Pesquisa (Parte I) Baseado no material do Prof. Reinaldo Fortes para o curso de 2014-01 Arquivo original: 21._arvores_(parte_1) Árvores de Pesquisa (Parte I) Prof. Túlio Toffolo http://www.toffolo.com.br BCC202 Algoritmos

Leia mais

Árvores. SCC-214 Projeto de Algoritmos. Thiago A. S. Pardo. Um nó após o outro, adjacentes Sem relações hierárquicas entre os nós, em geral

Árvores. SCC-214 Projeto de Algoritmos. Thiago A. S. Pardo. Um nó após o outro, adjacentes Sem relações hierárquicas entre os nós, em geral SCC-214 Projeto de Algoritmos Thiago A. S. Pardo Listas e árvores Listas lineares Um nó após o outro, adjacentes Sem relações hierárquicas entre os nós, em geral Diversas aplicações necessitam de estruturas

Leia mais

ÁRVORE BINÁRIA DE BUSCA TDA-ABB

ÁRVORE BINÁRIA DE BUSCA TDA-ABB ÁRVORE BINÁRIA DE BUSCA TDA-ABB Conceitos Gerais sobre Árvores Uma árvore é uma estrutura hierárquica dividida em níveis, que ou está vazia, ou contém elementos chamados nós; Diferentemente da árvore natural,

Leia mais

OPERAÇÕES PARA A ÁRVORE

OPERAÇÕES PARA A ÁRVORE melhorada Pai (n, A): do nó n da árvore A Se n é raiz, Pai é Λ (vazio) ilhosquerdo (n, A): filho esquerdo do nó n na árvore A Se n é folha, ilhosquerdo é Λ (vazio) rmaoireito (n, A): irmão direito do nó

Leia mais

UNIP - Ciência da Computação e Sistemas de Informação. Estrutura de Dados. AULA 5 Pilhas

UNIP - Ciência da Computação e Sistemas de Informação. Estrutura de Dados. AULA 5 Pilhas UNIP - Ciência da Computação e Sistemas de Informação Estrutura de Dados AULA Pilhas Estrutura de Dados A Estrutura de Dados Pilha Pilha é uma estrutura de dados usada em programação, que tem uma regra

Leia mais

Árvores de Pesquisa. A árvore de pesquisa é uma estrutura de dados muito eficiente para armazenar informação.

Árvores de Pesquisa. A árvore de pesquisa é uma estrutura de dados muito eficiente para armazenar informação. Árvores de Pesquisa A árvore de pesquisa é uma estrutura de dados muito eficiente para armazenar informação. Particularmente adequada quando existe necessidade de considerar todos ou alguma combinação

Leia mais

ÁRVORES. Prof. Yan ndre Maldonado - 1. Prof. Yandre Maldonado e Gomes da Costa

ÁRVORES. Prof. Yan ndre Maldonado - 1. Prof. Yandre Maldonado e Gomes da Costa ÁRVORES Prof. Yan ndre Maldonado - 1 Prof. Yandre Maldonado e Gomes da Costa Árvores Prof. Yan ndre Maldonado - 2 Árvores são estruturas de dados que caracterizam uma relação entre os dados que a compõem;

Leia mais

ÁRVORES BINÁRIAS DE BUSCA. Vanessa Braganholo Estruturas de Dados e Seus Algoritmos

ÁRVORES BINÁRIAS DE BUSCA. Vanessa Braganholo Estruturas de Dados e Seus Algoritmos ÁRVORES BINÁRIAS DE BUSCA Vanessa Braganholo Estruturas de Dados e Seus Algoritmos REFERÊNCIA Szwarcfiter, J.; Markezon, L. Estruturas de Dados e seus Algoritmos, 3a. ed. LTC. Cap. 4 INSTITUTO DE COMPUTAÇÃO

Leia mais

Árvores Binárias de Busca

Árvores Binárias de Busca Árvores Binárias de Busca Algoritmos e Estruturas de Dados I Nesta aula será apresentado o ADT árvore binária de busca, também conhecidas como dicionários binários Uma árvore binária de busca é uma estrutura

Leia mais

Árvores. A Profundidade da Árvore B C D E. Árvores Implementação Genérica

Árvores. A Profundidade da Árvore B C D E. Árvores Implementação Genérica Árvores Estrutura composta por nós e arcos direcionados Um dos nós é a raiz da árvore. Todo nó (exceto a raiz), possui um nó pai. Existe um único caminho da raíz até um nó. Uma árvore cujos nós possuem

Leia mais

Árvores. Fabio Gagliardi Cozman. PMR2300 Escola Politécnica da Universidade de São Paulo

Árvores. Fabio Gagliardi Cozman. PMR2300 Escola Politécnica da Universidade de São Paulo PMR2300 Escola Politécnica da Universidade de São Paulo Árvore: estrutura composta por nós e arestas entre nós. As arestas são direcionadas ( setas ) e: um nó (e apenas um) é a raiz; todo nó (exceto a

Leia mais

Princípios de Desenvolvimento de Algoritmos MAC122 Prof. Dr. Paulo Miranda IME-USP

Princípios de Desenvolvimento de Algoritmos MAC122 Prof. Dr. Paulo Miranda IME-USP Princípios de Desenvolvimento de Algoritmos MAC122 Prof. Dr. Paulo Miranda IME-USP Árvores Binárias Árvores Árvores representam estruturas de dados caracterizadas por uma relação hierárquica da informação:

Leia mais

Estrutura de Dados. Carlos Eduardo Batista. Centro de Informática - UFPB

Estrutura de Dados. Carlos Eduardo Batista. Centro de Informática - UFPB Estrutura de Dados Carlos Eduardo Batista Centro de Informática - UFPB bidu@ci.ufpb.br Árvores (parte 2) Estruturas de Dados 2 Organização dos dados: Linear: Listas, pilhas, filas. Relação sequencial.

Leia mais

Árvores. Estruturas de Dados. Prof. Vilson Heck Junior

Árvores. Estruturas de Dados. Prof. Vilson Heck Junior Árvores Estruturas de Dados Prof. Vilson Heck Junior Árvores INTRODUÇÃO Introdução Árvores são estruturas de dados utilizadas para armazenar e recuperar dados de forma rápida e eficiente; Árvores não são

Leia mais

Árvores B. Prof. Márcio Bueno. / Fonte: Material da Prof a Ana Eliza Lopes Moura

Árvores B. Prof. Márcio Bueno. / Fonte: Material da Prof a Ana Eliza Lopes Moura Árvores B Prof. Márcio Bueno ed2tarde@marciobueno.com / ed2noite@marciobueno.com Fonte: Material da Prof a Ana Eliza Lopes Moura Situação Problema Memória Principal Volátil e limitada Aplicações Grandes

Leia mais

UNIVERSIDADE DA BEIRA INTERIOR

UNIVERSIDADE DA BEIRA INTERIOR UNIVERSIDADE DA BEIRA INTERIOR Algoritmos e Estruturas de Dados - Bioengenharia 2º Semestre Exame Época Normal Resolução 13/junho/2015 A. [3.5 val] Algoritmos de ordenação e de pesquisa Considere-se as

Leia mais

Fabrício J. Barth. BandTec - Faculdade de Tecnologia Bandeirantes

Fabrício J. Barth. BandTec - Faculdade de Tecnologia Bandeirantes Árvores Fabrício J. Barth BandTec - Faculdade de Tecnologia Bandeirantes Setembro de 2011 Tópicos Introdução Árvores binárias Implementação em Java Ordens de percurso em árvores binárias Altura de uma

Leia mais

CES-11. Algoritmos e Estruturas de Dados. Árvores Operações sobre uma árvore Estruturas para armazenar árvores

CES-11. Algoritmos e Estruturas de Dados. Árvores Operações sobre uma árvore Estruturas para armazenar árvores ES- Algoritmos e Estruturas de ados ES- ontígua ontígua melhorada arlos Alberto Alonso Sanches uliana de Melo Bezerra ES- ontígua ontígua melhorada Operações sobre uma árvore é o tipo correspondente a

Leia mais

(a) todos os nós irmãos da árvore m-ária são interligados; (b) todas as conexões pai-filho são removidas, exceto a primeira de cada grupo.

(a) todos os nós irmãos da árvore m-ária são interligados; (b) todas as conexões pai-filho são removidas, exceto a primeira de cada grupo. 3. Listas Não Lineares Quando existe mais de um caminho possíveis pela estrutura, esta é dita não linear. Exemplos clássicos de estruturas deste tipo são as árvores e grafos (estes estudados em Algoritmos

Leia mais

Árvores, Árvores Binárias e Árvores Binárias de Pesquisa. Rui Jorge Tramontin Jr.

Árvores, Árvores Binárias e Árvores Binárias de Pesquisa. Rui Jorge Tramontin Jr. Árvores, Árvores Binárias e Árvores Binárias de Pesquisa Rui Jorge Tramontin Jr. Tópicos Abordados Introdução Definição de Árvore Árvores Binárias Árvores Binárias de Pesquisa (ABP) UDESC / Rui J. Tramontin

Leia mais

Árvores Conceitos gerais

Árvores Conceitos gerais http://www.mysticfractal.com/ FractalImaginator.html Árvores Conceitos gerais 9/11 Nesta aula veremos conceitos e definições sobre árvores Diferentemente das estruturas de pilhas, filas e listas que são

Leia mais

1. Listas sequenciais versus listas ligadas. Lista sequencial

1. Listas sequenciais versus listas ligadas. Lista sequencial Alocação Dinâmica Listas Ligadas 1. Listas sequenciais versus listas ligadas Lista sequencial Uma lista sequencial é um conjunto de elementos contíguos na memória. Um vetor é o melhor exemplo de lista

Leia mais

Bruno Hott Algoritmos e Estruturas de Dados I DECSI UFOP. Aula 08: Árvores

Bruno Hott Algoritmos e Estruturas de Dados I DECSI UFOP. Aula 08: Árvores Bruno Hott Algoritmos e Estruturas de Dados I DECSI UFOP Aula 08: Árvores Conceitos básicos Organiza um conjunto de acordo com uma estrutura hierárquica. Contém elementos que são chamados de nós O pai

Leia mais

Organizam dados de forma hierárquica. Acontecem com frequência na natureza. Fáceis de representar e manipular com computadores

Organizam dados de forma hierárquica. Acontecem com frequência na natureza. Fáceis de representar e manipular com computadores Organizam dados de forma hierárquica Acontecem com frequência na natureza Fáceis de representar e manipular com computadores Úteis para várias tarefas Raiz Folhas Nós internos Filhos Pai Descendentes

Leia mais

CES-11. Algoritmos e Estruturas de Dados. Carlos Alberto Alonso Sanches Juliana de Melo Bezerra

CES-11. Algoritmos e Estruturas de Dados. Carlos Alberto Alonso Sanches Juliana de Melo Bezerra CES-11 Algoritmos e Estruturas de Dados Carlos Alberto Alonso Sanches Juliana de Melo Bezerra CES-11 Revisão Tipos escalares primitivos Tipos constituídos de uma linguagem Ponteiros Alocação estática versus

Leia mais

ÁRVORES E ÁRVORES BINÁRIAS. Adaptado de Alexandre P

ÁRVORES E ÁRVORES BINÁRIAS. Adaptado de Alexandre P ÁRVORES E ÁRVORES BINÁRIAS Adaptado de Alexandre P ROTEIRO Contextualização Árvores Árvores Binárias ROTEIRO Contextualização Árvores Árvores Binárias CONTEXTUALIZAÇÃO Importância de estruturas unidimensionais

Leia mais

Algoritmos e Estrutura de Dados II. Árvore AVL. Prof Márcio Bueno. / Material da Prof a Ana Eliza

Algoritmos e Estrutura de Dados II. Árvore AVL. Prof Márcio Bueno. / Material da Prof a Ana Eliza Algoritmos e Estrutura de Dados II Árvore AVL Prof Márcio Bueno ed2tarde@marciobueno.com / ed2noite@marciobueno.com Material da Prof a Ana Eliza Árvores Binárias de Busca Objetivo da Utilização Minimizar

Leia mais

Lista Ordenada. Estrutura de Dados. Universidade Federal de Juiz de Fora Departamento de Ciência da Computação 1 / 35

Lista Ordenada. Estrutura de Dados. Universidade Federal de Juiz de Fora Departamento de Ciência da Computação 1 / 35 Lista Ordenada Estrutura de Dados Universidade Federal de Juiz de Fora Departamento de Ciência da Computação 1 / 35 Conteúdo Definição Operações Representações Contígua Encadeada Aplicação Exercícios 2

Leia mais

ANHANGUERA ESTRUTURA DE DADOS AULA 06 LISTAS CIRCULARES E DUPLAMENTE ENCADEADAS. Prof. Thomás da Costa

ANHANGUERA ESTRUTURA DE DADOS AULA 06 LISTAS CIRCULARES E DUPLAMENTE ENCADEADAS. Prof. Thomás da Costa ANHANGUERA 2015.2 ESTRUTURA DE DADOS AULA 06 Prof. Thomás da Costa thomascosta@aedu.com Vamos ver o PEA : PEA Estrutura de Dados Antes de iniciar a aula, vamos mostrar o andamento do PEA. Vou mostrar as

Leia mais

Estruturas de Dados II

Estruturas de Dados II Estruturas de Dados II Rodrigo Porfírio da Silva Sacchi rodrigosacchi@ufgd.edu.br 3410-2086 Aula 2: Árvores http://www.do.ufgd.edu.br/rodrigosacchi Árvores Definição: Árvores Uma árvore T é um conjunto

Leia mais

Árvores Binárias. Disciplina de Algoritmos e Estrutura de Dados III. Prof. Marcos Antonio Schreiner 17/03/2015

Árvores Binárias. Disciplina de Algoritmos e Estrutura de Dados III. Prof. Marcos Antonio Schreiner 17/03/2015 Árvores Binárias Disciplina de Algoritmos e Estrutura de Dados III Prof. Marcos Antonio Schreiner 17/03/2015 1 Introdução Árvore binárias são estruturas importantes toda vez que uma decisão binária deve

Leia mais

Algoritmos e Estruturas de Dados Prof. Osório PIP/CA - Aula 05 Pag.: 1

Algoritmos e Estruturas de Dados Prof. Osório PIP/CA - Aula 05 Pag.: 1 Algoritmos e Estruturas de Dados Prof. Osório PIP/CA - Aula 05 Pag.: 1 - UNIVERSIDADE DO VALE DO RIO DOS SINOS CENTRO DE CIÊNCIAS EXATAS E TECNOLÓGICAS (C6/6) PIP/CA - Programa Interdisciplinar de Pós-Graduação

Leia mais

Árvores Introdução (1) Algoritmos e Estruturas de Dados MEEC 2013/14

Árvores Introdução (1) Algoritmos e Estruturas de Dados MEEC 2013/14 lgoritmos e struturas de ados M 2013/14 Árvores Árvores Introdução (1) Árvores são uma abstração matemática que desempenha um papel central no projecto e análise de algoritmos: Usamos árvores para descrever

Leia mais

Heaps. Estrutura de Dados. Universidade Federal de Juiz de Fora Departamento de Ciência da Computação 1 / 35

Heaps. Estrutura de Dados. Universidade Federal de Juiz de Fora Departamento de Ciência da Computação 1 / 35 Heaps Estrutura de Dados Universidade Federal de Juiz de Fora Departamento de Ciência da Computação 1 / 35 Conteúdo Introdução Definição de Heap Heap Binária Implementação com vetor Fila de Prioridades

Leia mais

Edital de Seleção 053/2016 PROPESP/UFAM. Prova de Conhecimento. Caderno de Questões

Edital de Seleção 053/2016 PROPESP/UFAM. Prova de Conhecimento. Caderno de Questões Edital de Seleção 053/2016 PROPESP/UFAM Prova de Conhecimento Caderno de Questões CANDIDATO: INSCRIÇÃO: Assinatura conforme identidade INSTRUÇÕES PARA O CANDIDATO: Verifique o seu nome e o número da sua

Leia mais

Árvores. ! utilizada em muitas aplicações. ! modela uma hierarquia entre elementos. ! O conceito de árvores está diretamente ligado à recursão

Árvores. ! utilizada em muitas aplicações. ! modela uma hierarquia entre elementos. ! O conceito de árvores está diretamente ligado à recursão Árvores 1 Árvores! utilizada em muitas aplicações! modela uma hierarquia entre elementos! árvore genealógica! diagrama hierárquico de uma organização! modelagem de algoritmos! O conceito de árvores está

Leia mais

Árvores binárias de busca

Árvores binárias de busca Árvores binárias de busca S-202 lgoritmos e Estruturas de Dados I Prof. Thiago. S. Pardo Árvore binárias Árvores de grau 2, isto é, cada nó tem dois filhos, no máximo Raiz D B E Terminologia: filho esquerdo

Leia mais

Árvores. N-árias, Binárias, Busca. Vanessa Maia Berny Mestrado em Ciência da Computação

Árvores. N-árias, Binárias, Busca. Vanessa Maia Berny Mestrado em Ciência da Computação Árvores N-árias, Binárias, Busca Vanessa Maia Berny Mestrado em Ciência da Computação Disciplina de Estrutura de Dados Prof. Dr. Luzzardi, Paulo Roberto Gomes Abril de 2008 Árvores N-árias São estruturas

Leia mais

Aula 14 Listas Duplamente Encadeadas. prof Leticia Winkler

Aula 14 Listas Duplamente Encadeadas. prof Leticia Winkler Aula 14 Listas Duplamente Encadeadas prof Leticia Winkler 1 Lista Duplamente Encadeada É um tipo de lista encadeada que pode ser vazia (NULL) ou que pode ter um ou mais nós, sendo que cada nó possui dois

Leia mais

UNIVERSIDADE DA BEIRA INTERIOR

UNIVERSIDADE DA BEIRA INTERIOR UNIVERSIDADE DA BEIRA INTERIOR Algoritmos e Estruturas de Dados - Bioengenharia 2º Semestre Exame Especial Resolução 19/07/2013 A. [4.75 val] Algoritmos de ordenação e de pesquisa (usando memória estática

Leia mais

Estruturas de Dados. Módulo 17 - Busca. 2/6/2005 (c) Dept. Informática - PUC-Rio 1

Estruturas de Dados. Módulo 17 - Busca. 2/6/2005 (c) Dept. Informática - PUC-Rio 1 Estruturas de Dados Módulo 17 - Busca 2/6/2005 (c) Dept. Informática - PUC-Rio 1 Referências Waldemar Celes, Renato Cerqueira, José Lucas Rangel, Introdução a Estruturas de Dados, Editora Campus (2004)

Leia mais

Pesquisa Linear. Adriano J. Holanda 15/3/2016

Pesquisa Linear. Adriano J. Holanda 15/3/2016 Pesquisa Linear Adriano J. Holanda 15/3/2016 Busca Linear em memória principal Introdução O dados estarão sempre armazenados na memória principal (DRAM 1 ): não há necessidade de acesso à memória secundária

Leia mais

Árvores. Árvores. INF01203 Estruturas de Dados. Árvores. Exemplos de Aplicações. Hierarquia de subordinação. Relacionamento Lógico.

Árvores. Árvores. INF01203 Estruturas de Dados. Árvores. Exemplos de Aplicações. Hierarquia de subordinação. Relacionamento Lógico. Árvores N01203 struturas de ados Árvores onstituem uma das estruturas mais importantes da área de computação, inclusive em aplicações Árvores xemplos de plicações Relacionamento Lógico Hierarquia ou Subordinação

Leia mais

Prova 2 PMR2300 1o. semestre 2015 Prof. Thiago Martins

Prova 2 PMR2300 1o. semestre 2015 Prof. Thiago Martins Prova PMR00 o. semestre 0 Prof. Thiago Martins Instruções: Escreva o nome e o número USP na folha de papel almaço.. ( pontos) Um heap binário é uma árvore binária completa (todos os níveis exceto o último

Leia mais

Prof. Jesus José de Oliveira Neto

Prof. Jesus José de Oliveira Neto Prof. Jesus José de Oliveira Neto São estruturas de dados adequadas para a representação de hierarquias. Uma árvore é composta por um conjunto de nós. Existe um nó r, denominado raiz, que contém zero ou

Leia mais

Pesquisa em Árvores Digitais. Adaptado de David M.

Pesquisa em Árvores Digitais. Adaptado de David M. Pesquisa em Árvores Digitais Adaptado de David M. Pesquisa Digital Pesquisa digital é baseada na representação das chaves como uma seqüência de caracteres ou de dígitos. Os métodos de pesquisa digital

Leia mais

Algoritmos e Estrutura de Dados II. Árvore AVL. Prof a Karina Oliveira. Fonte: Prof a Ana Eliza

Algoritmos e Estrutura de Dados II. Árvore AVL. Prof a Karina Oliveira. Fonte: Prof a Ana Eliza Algoritmos e Estrutura de Dados II Árvore AVL Prof a Karina Oliveira kkco@dei.unicap.br Fonte: Prof a Ana Eliza Árvores Binárias de Busca Objetivo da Utilização Minimizar o número de comparações efetuadas,

Leia mais

Listas Lineares. Livro Projeto de Algoritmos Nívio Ziviani Capítulo 3 Seção 3.1

Listas Lineares. Livro Projeto de Algoritmos Nívio Ziviani Capítulo 3 Seção 3.1 Listas Lineares Elerson R. S. Santos elerson@dcc.ufmg.br Livro Projeto de Algoritmos Nívio Ziviani Capítulo 3 Seção 3.1 http://www2.dcc.ufmg.br/livros/algoritmos/ Listas Lineares Uma das formas mais simples

Leia mais

Árvores Binárias de Busca

Árvores Binárias de Busca 0. Um breve comentário sobre os algoritmos de busca em tabelas De uma maneira geral, realizam-se operações de busca, inserção e remoção de elementos numa tabela. A busca sequencial tradicional é O(N).

Leia mais

ADT - Árvores. ADT Árvores Definição

ADT - Árvores. ADT Árvores Definição ADT - Árvores Outro tipo abstrato de dados (ADT) é a árvore. Como acontece com as listas, a utilização das árvores será basicamente como estruturas de dados ao invés de tipos de dados. Ou seja, o foco

Leia mais

Pilha. SCC Algoritmos e Estruturas de Dados I. Prof. Fernando V. Paulovich. *Baseado no material do Prof. Gustavo Batista

Pilha. SCC Algoritmos e Estruturas de Dados I. Prof. Fernando V. Paulovich. *Baseado no material do Prof. Gustavo Batista Pilha SCC0202 - Algoritmos e Estruturas de Dados I Prof. Fernando V. Paulovich *Baseado no material do Prof. Gustavo Batista http://www.icmc.usp.br/~paulovic paulovic@icmc.usp.br Instituto de Ciências

Leia mais

Árvores Estrutura de Dados. Universidade Federal de Juiz de Fora Departamento de Ciência da Computação

Árvores Estrutura de Dados. Universidade Federal de Juiz de Fora Departamento de Ciência da Computação 1 Árvores Estrutura de Dados Universidade Federal de Juiz de Fora Departamento de Ciência da Computação Conteúdo 2 Árvores Definições Conceitos Algoritmos Árvore Binária Implementação Algoritmos Árvore

Leia mais

Árvores: conceitos gerais e representações

Árvores: conceitos gerais e representações 1 1. Conceitos fundamentais Até agora estudamos estruturas de dados lineares, isto é, estruturas apropriadas ao armazenamento de dados que têm uma relação seqüencial: 1. Estruturas lineares contíguas em

Leia mais

ESTRUTURA DE DADOS (TCC )

ESTRUTURA DE DADOS (TCC ) ESTRUTURA DE DADOS (TCC-00.319) Listas lineares Cristina Boeres 2 Estrutura de Dados! Listas lineares! estática! dinâmicas! Como manipulá-las:! pilhas! filas Listas Lineares 3! fácil manipulação! agrupa

Leia mais

Árvores Binárias. 9/11 e 11/11 Conceitos Representação e Implementação

Árvores Binárias. 9/11 e 11/11 Conceitos Representação e Implementação Árvores Binárias 9/11 e 11/11 Conceitos Representação e Implementação Árvore Binárias (AB) Uma Árvore Binária (AB) T é um conjunto finito de elementos, denominados nós ou vértices, tal que: (i) Se T =,

Leia mais

Tabelas Hash. Prof. Túlio Toffolo BCC202 Aulas 23 e 24 Algoritmos e Estruturas de Dados I

Tabelas Hash. Prof. Túlio Toffolo  BCC202 Aulas 23 e 24 Algoritmos e Estruturas de Dados I Tabelas Hash Prof. Túlio Toffolo http://www.toffolo.com.br BCC202 Aulas 23 e 24 Algoritmos e Estruturas de Dados I Pesquisa em Memória Primária Introdução - Conceitos Básicos Pesquisa Sequencial Pesquisa

Leia mais

Estruturas de Dados Aula 16: Árvores com Número Variável 13/06/2011

Estruturas de Dados Aula 16: Árvores com Número Variável 13/06/2011 Estruturas de Dados Aula 16: Árvores com Número Variável de Filhos 13/06/2011 1 Fontes Bibliográficas Livros: Introdução a Estruturas de Dados (Celes, Cerqueira e Rangel): Capítulo 13; Projeto de Algoritmos

Leia mais

MCTA001 Algoritmos e Estruturas de Dados I. Aula 08 Árvores (parte 1) Laboratório

MCTA001 Algoritmos e Estruturas de Dados I. Aula 08 Árvores (parte 1) Laboratório MCTA001 Algoritmos e Estruturas de Dados I Aula 08 Árvores (parte 1) Laboratório 1Q-19 1 2 Árvore binária de busca (ABB) Inventada por P.F. Windley, A.D. Booth, A.J.T. Colin, e T.N. Hibbard em 1960. É

Leia mais

ÁRVORES ABB (ÁRVORES BINÁRIAS DE BUSCAS) Sérgio Carlos Portari Júnior

ÁRVORES ABB (ÁRVORES BINÁRIAS DE BUSCAS) Sérgio Carlos Portari Júnior ÁRVORES ABB (ÁRVORES BINÁRIAS DE BUSCAS) Sérgio Carlos Portari Júnior Árvore Binária de Busca (ABB) o valor associado à raiz é sempre maior que o valor associado a qualquer nó da sub-árvore à esquerda

Leia mais

Lista com descritor (continuação)

Lista com descritor (continuação) Lista com descritor (continuação) Rotina para remover o eiro elemento de uma LLSECD: char removeiniciollsecd(tdescritor *l, TInfo val) { p = l->; l->=p->prox; if (l->==1) Rotina para remover o último nó

Leia mais

CES-11. Árvores. Conceito de árvore. Definição recursiva de árvore Definições associadas a árvore. Ordenação dos nós de uma árvore

CES-11. Árvores. Conceito de árvore. Definição recursiva de árvore Definições associadas a árvore. Ordenação dos nós de uma árvore Árvores Conceito de árvore CES-11 Definição recursiva de árvore Definições associadas a árvore Representações de árvores Ordenação dos nós de uma árvore CONCEITO DE ÁRVORE Tantos as pilhas como as filas

Leia mais

ALGORITMOS E ESTRUTURAS DE DADOS CES-11

ALGORITMOS E ESTRUTURAS DE DADOS CES-11 ALGORITMOS E ESTRUTURAS DE DADOS CES-11 Prof. Paulo André Castro pauloac@ita.br Sala 110 Prédio da Computação www.comp.ita.br/~pauloac IECE - ITA Revisão CES-11 Tipos escalares primitivos Tipos constituídos

Leia mais

Algoritmos e Estruturas de dados

Algoritmos e Estruturas de dados Algoritmos e Estruturas de dados Listas Encadeadas Prof. Dr. Fábio Rodrigues de la Rocha (Listas Encadeadas) 1 / 21 Definição: Anteriormente estudamos listas encadeadas que foram implementadas como vetores

Leia mais

Arvores, Percursos não recursivos, Arvores heterogêneas. Aula 19

Arvores, Percursos não recursivos, Arvores heterogêneas. Aula 19 Arvores, Percursos não recursivos, Arvores heterogêneas Aula 19 Arvores binárias encadeadas Percorrer uma árvore é uma operação muito comum e seria útil encontrar um método mais eficiente para implementar

Leia mais

AED2 - Aulas 06 e 07 Árvores AVL e rubro-negras

AED2 - Aulas 06 e 07 Árvores AVL e rubro-negras AED2 - Aulas 06 e 07 Árvores AVL e rubro-negras Árvores AVL AVL vem dos nomes dos seus inventores: Adelson-Velsky and Landis. Definições: a altura de uma subárvore é o comprimento do caminho mais longo

Leia mais

Copiar para o ficheiro ArvoreBinaria.h e adaptar as funções associadas às operações sobre árvores binárias (3.1 a 3.12)

Copiar para o ficheiro ArvoreBinaria.h e adaptar as funções associadas às operações sobre árvores binárias (3.1 a 3.12) Considere as seguintes declarações (NodoArv e PNodoArv), adaptadas dos apontamentos: struct NodoArv { int Elemento; struct NodoArv *Esquerda; struct NodoArv *Direita; ; typedef struct NodoArv *PNodoArv;

Leia mais

ÁRVORES E ÁRVORE BINÁRIA DE BUSCA

ÁRVORES E ÁRVORE BINÁRIA DE BUSCA ÁRVORES E ÁRVORE BINÁRIA DE BUSCA Prof. André Backes Definição 2 Diversas aplicações necessitam que se represente um conjunto de objetos e as suas relações hierárquicas Uma árvore é uma abstração matemática

Leia mais

Unidade: Estruturas de Dados Não Lineares. Unidade I:

Unidade: Estruturas de Dados Não Lineares. Unidade I: Unidade: Estruturas de Dados Não Lineares Unidade I: 0 Unidade: Estruturas de Dados Não Lineares 1 - Recursividade Um algoritmo que para resolver um problema divide-o em subproblemas mais simples, cujas

Leia mais