EAD ARVORE BINÁRIA - ARMAZENAMENTO NÃO SEQUENCIAL COM VETORES

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

Download "EAD ARVORE BINÁRIA - ARMAZENAMENTO NÃO SEQUENCIAL COM VETORES"

Transcrição

1 EAD ARVORE BINÁRIA - ARMAZENAMENTO NÃO SEQUENCIAL COM VETORES Árvores Binárias de Pesquisa (ABP) - Definição Árvore binária em que os elementos dos seus nodos têm associado uma chave, que - determina a sua posição de inserção na árvore e - obedece às seguintes regras: a chave do elemento de um nodo é - maior do que a chave do elemento de qualquer nodo da sua subárvore esquerda e - menor do que a chave do elemento de qualquer nodo da sua subárvore direita; - ou seja, a árvore está em ordem crescente. Cada nodo pode ser visto como a raiz de duas árvores: - a árvore esquerda com nodos cujos elementos têm chaves inferiores à chave da raiz, e - a árvore direita com nodos cujos elementos têm chaves superiores à chave da raiz. O objetivo de organizar dados em ABP é facilitar a procura de um elemento: - a partir da raiz e da chave a ser encontrada, é possível saber qual o caminho a ser percorrido até encontrar o elemento/nodo com aquela chave; - basta verificar se a chave do elemento procurado é maior ou menor à chave do elemento na posição de pesquisa atual. 1

2 Árvores Binárias de Pesquisa (ABP) - Exemplos 2

3 Exemplo: Árvore com 10 nodos, em que o elemento de cada nodo é um inteiro. Representação gráfica: Estrutura de dados: Arvore(k) = struct { Elemento, Esquerda, Direita }, k = 1,..., 10 Arvore é um tipo de dados estruturado, mais especificamente um registo (estrutura); Elemento é um tipo de dados não estruturado básico (inteiro). Raiz = 3 3

4 Arvore Elemento Esquerda Direita Implementação em MatLab: Arvore(1).Elemento = 86; Arvore(1).Esquerda = 0; Arvore(1).Direita = 0; Arvore(2).Elemento = 28; Arvore(2).Esquerda = 9; Arvore(2).Direita = 6; Arvore(3).Elemento = 59; Arvore(3).Esquerda = 2; Arvore(3).Direita = 8; Arvore(4).Elemento = 81; Arvore(4).Esquerda = 0; Arvore(4).Direita = 1; Arvore(5).Elemento = 49; Arvore(5).Esquerda = 0; Arvore(5).Direita = 0; Arvore(6).Elemento = 47; Arvore(6).Esquerda = 10; Arvore(6).Direita = 5; Arvore(7).Elemento = 71; Arvore(7).Esquerda = 0; Arvore(7).Direita = 0; Arvore(8).Elemento = 76; Arvore(8).Esquerda = 7; Arvore(8).Direita = 4; Arvore(9).Elemento = 40; Arvore(9).Esquerda = 0; Arvore(9).Direita = 0; Arvore(10).Elemento = 11; Arvore(10).Esquerda = 0; Arvore(10).Direita = 0; 4

5 Operações sobre uma árvore binária de pesquisa: - As operações que incidem sobre uma árvore binária genérica podem também ser aplicada a uma árvore binária de pesquisa; - No entanto, algumas destas operações terão que sofrer alterações de forma a obedecer à definição de "Árvore Binária de Pesquisa", tais como: - Pesquisar um elemento numa árvore binária de pesquisa - Consultar um elemento numa árvore binária de pesquisa - Alterar/atualizar os dados de um Elemento de uma árvore binária de pesquisa - Determinar o maior elemento de uma árvore binária de pesquisa - Determinar o menor elemento de uma árvore binária de pesquisa - Inserir um elemento numa árvore binária de pesquisa - Remover um elemento de uma árvore binária de pesquisa 5

6 Pesquisar um elemento numa Árvore Binária de Pesquisa Parâmetros: Entrada: elemento a pesquisar (Elem), árvore (Arvore) e raiz da árvore (Raiz) Saída: índice do nodo com o elemento a pesquisar (indnodo) ou 0 (se não existe) Função implementada em MatLab (recursiva): Nota: CompararElementos é uma operação específica do problema function [indnodo] = PesquisarElementoABP (Elem, Arvore, Raiz) if Raiz == 0 indnodo = 0; return; comp = CompararElementos(Elem, Arvore(Raiz).Elemento); if comp == 0 indnodo = Raiz; % Elem = elemento da Raiz elseif comp > 0 % Elem > elemento da Raiz, pesquisar o elemento na subárvore direita indnodo = PesquisarElementoABP(Elem, Arvore, Arvore(Raiz).Direita); else % Elem < elemento da Raiz, pesquisar o elemento na subárvore esquerda indnodo = PesquisarElementoABP(Elem, Arvore, Arvore(Raiz).Esquerda); 6

7 Consultar um elemento numa Árvore Binária de Pesquisa Parâmetros: Entrada: elemento a consultar (Elem), árvore (Arvore) e raiz da árvore (Raiz) Saída: mostra os dados do elemento com a mesma Chave de Elem (se existe na árvore) Função implementada em MatLab (iterativa): Nota: MostrarElemento é uma operação específica do problema function [] = ConsultarElementoABP (Elem, Arvore, Raiz) % indnodo é o índice do nodo com Elem (se indnodo = 0, então Elem não existe) indnodo = PesquisarElementoABP(Elem, Arvore, Raiz); if indnodo == 0 % Elem não pertence à lista disp('elemento nao pertence a lista!'); else % Elem pertence à lista MostrarElemento(Arvore(indNodo).Elemento); 7

8 Alterar/atualizar um elemento de uma árvore binária de pesquisa Notas: - a informação contida no elemento fornecido para atualizar basta incidir sobre um dos seus campos, normalmente o que serve de Chave (valor que caracteriza o elemento); - a informação alterada não pode incidir sobre a Chave do elemento, pois é valor deste campo de define a posição do elemento numa árvore binária de pesquisa. Parâmetros: Entrada: elemento a alterar (Elem), árvore (Arvore) e raiz da árvore (Raiz) Saída: árvore atualizada com a nova informação sobre o Elem (Arvore) Função implementada em MatLab (recursiva): Nota: AlterarElemento é uma operação específica do problema que, sendo uma ABP não pode alterar a Chave do elemento, pois é o valor deste campo que indica a posição do elemento na árvore function [Arvore] = AlterarElementoABP (Elem, Arvore, Raiz) indnodo = PesquisarElementoABP(Elem, Arvore, Raiz); if indnodo ~= 0 Arvore(indNodo).Elemento = AlterarElemento(Arvore(indNodo).Elemento); 8

9 Determinar o maior elemento de uma Árvore Binária de Pesquisa Notas: - o maior elemento encontra-se no nodo mais à direita da árvore; - a árvore não pode ser vazia. Parâmetros: Entrada: árvore (Arvore) e raiz da árvore (Raiz) Saída: o maior elemento da árvore (maiorelem) Função implementada em MatLab (recursiva): function [maiorelem] = DeterminarMaiorElementoABP (Arvore, Raiz) if Arvore(Raiz).Direita == 0 % Caso terminal/paragem maiorelem = Arvore(Raiz).Elemento; else % Caso geral maiorelem = DeterminarMaiorElementoABP(Arvore, Arvore(Raiz).Direita); 9

10 Determinar o menor elemento de uma Árvore Binária de Pesquisa Notas: - o menor elemento encontra-se no nodo mais à esquerda da árvore; - a árvore não pode ser vazia. Parâmetros: Entrada: árvore (Arvore) e raiz da árvore (Raiz) Saída: o menor elemento da árvore (menorelem) Função implementada em MatLab (recursiva): function [menorelem] = DeterminarMenorElementoABP (Arvore, Raiz) if Arvore(Raiz).Esquerda == 0 % Caso terminal/paragem menorelem = Arvore(Raiz).Elemento; else % Caso geral menorelem = DeterminarMenorElementoABP(Arvore, Arvore(Raiz).Esquerda); 10

11 Inserir um elemento numa Árvore Binária de Pesquisa Notas: - Este processo tem que obedecer à definição de ABP: - a chave do elemento a inserir não pode ainda existir na árvore, e - a sua posição de inserção tem que assegurar que a chave de um elemento é - maior do que as chaves de todos os elementos da sua subárvore esquerda e - menor do que as chaves de todos os elementos da sua subárvores direita. - O nodo a inserir com o novo elemento é sempre inserido como folha da árvore. - O elemento é sempre inserido, mesmo que já exista na árvore. Parâmetros: Entrada: elemento a inserir (Elem), árvore (Arvore) e raiz da árvore (Raiz) Saída: árvore (Arvore) e raiz da árvore (Raiz) atualizadas 11

12 Função implementada em MatLab (iteratoiva): Nota: CompararElementos é uma operação específica do problema function [Arvore, Raiz] = InserirElementoABP (Elem, Arvore, Raiz) Nodo = CriarNodoArvore(Elem); if Raiz == 0 Arvore(1) = Nodo; Raiz = 1; return; indnodo = NumeroNodosArvore(Arvore, Raiz) + 1; painodo = DeterminarPaiNovoNodo(Elem, Arvore, Raiz, 0); Arvore(indNodo) = Nodo; if CompararElementos(Elem, Arvore(paiNodo).Elemento) < 0 Arvore(paiNodo).Esquerda = indnodo; else Arvore(paiNodo).Direita = indnodo; 12

13 function [painodo] = DeterminarPaiNovoNodo (Elem, Arvore, Raiz, pairaiz) if Raiz == 0 painodo = pairaiz; return; comp = CompararElementos(Elem, Arvore(Raiz).Elemento); if comp < 0 painodo = DeterminarPaiNovoNodo(Elem, Arvore, Arvore(Raiz).Esquerda, Raiz); else painodo = DeterminarPaiNovoNodo(Elem, Arvore, Arvore(Raiz).Direita, Raiz); 13

14 Remover um elemento numa Árvore Binária de Pesquisa Notas: - Deve-se considerar três casos distintos, segundo as características do nodo a remover: - se é uma folha, - se é um nodo com um único filho ou - se é um nodo com dois filhos. - Os mecanismos para tratar os dois primeiros casos são os mesmos descritos para o caso de árvores binárias genéricas. - O mecanismo para tratar o terceiro caso, remoção de um nodo com dois filhos, tem em conta as características de uma árvore binária de pesquisa (os seus elementos estão organizados segundo um critério). 14

15 Remoção de um nodo com dois filhos - O mecanismo de remoção implica substituir este nodo pelo nodo com chave mais próxima (maior ou menor) da chave do elemento a ser removido. - Esta operação poderá realiza-se de duas formas diferentes: - substituir a informação associada ao nodo a ser removido pela informação do seu "sucessor", que é o nodo mais à esquerda da subárvore direita (é o menor elemento da subárvore direita, que é maior do que qualquer elemento da subárvore esquerda); - substituir a informação associada ao nodo a ser removido pelo seu "antecessor", que é o nodo mais à direita da subárvore esquerda (é o maior elemento da subárvore esquerda, que é menor do que qualquer elemento da subárvores direita). - A escolha da forma a usar (substituir pelo "sucessor" ou "antecessor") deverá ter em consideração a altura das respetivas subárvores (usar o nodo da subárvore com maior altura). 15

16 Parâmetros: Entrada: elemento a remover (Elem), árvore (Arvore) e raiz da árvore (Raiz) Saída: árvore (Arvore) e raiz da árvore (Raiz) atualizadas Algoritmo (iterativo): Pesquisar o nodo com o elemento a remover (Nodo) Se o elemento a remover não existe na árvore (Nodo = 0) Então SAIR Senão Analisar os 4 casos possíveis seguintes 16

17 1º caso: o Nodo tem 2 filhos (subárvores esquerda e direita não vazias) Pesquisar o nodo com o elemento para substituir o elemento de Nodo (NodoSub) Determinar a altura da subárvore esquerda de Nodo (AlturaEsq) Determinar a altura da subárvore direita de Nodo (AlturaDir) Se AlturaEsq > AlturaDir Então NodoSub é o nodo com o maior elemento da subárvore esquerda de Nodo Senão NodoSub é o nodo com o menor elemento da subárvore direita de Nodo Pesquisar o pai de NodoSub (PaiNodoSub) Substituir o elemento de Nodo pelo elemento de NodoSub Remover o NodoSub da árvore, ligando PaiNodoSub a um dos filhos de NodoSub Se NodoSub é filho esquerdo de PaiNodoSub Então O filho esquerdo de NodoSub passa a ser filho esquerdo de PaiNodoSub Senão O filho direito de NodoSub passa a ser filho direito de PaiNodoSub Libertar o NodoSub 17

18 2º caso: o Nodo é uma folha (subárvores esquerda e direita vazias) Se o Nodo é a raiz da árvore (logo, a árvore só tem um elemento) Então Remover o Nodo da árvore (tornar a árvore vazia, Raiz = 0) Senão Pesquisar o pai de Nodo (PaiNodo) Remover o Nodo da árvore Se o Nodo é folha esquerda de PaiNodo Então Tornar a subárvore esquerda de Nodo vazia Senão Tornar a subárvore direita de Nodo vazia Libertar o Nodo 18

19 3º caso: o Nodo tem apenas tem um filho esquerdo (não tem filho direito) Se o Nodo é a raiz da árvore Então Atualizar a raiz da árvore (passando a ser o seu filho esquerdo) Senão Pesquisar o pai de Nodo (PaiNodo) Remover o Nodo da árvore Se o Nodo é folha esquerda de PaiNodo Então Tornar o filho (esquerdo) de Nodo o filho esquerdo de PaiNodo Senão Tornar o filho (esquerdo) de Nodo o filho direito de PaiNodo Libertar o Nodo 19

20 4º caso: o Nodo tem apenas tem um filho direito (não tem filho esquerdo) Se o Nodo é a raiz da árvore Então Atualizar a raiz da árvore (passando a ser o seu filho direito) Senão Pesquisar o pai de Nodo (PaiNodo) Remover o Nodo da árvore Se o Nodo é folha esquerda de PaiNodo Então Tornar o filho (direito) de Nodo o filho esquerda de PaiNodo Senão Tornar o filho (direito) de Nodo o filho direito de PaiNodo Libertar o Nodo Função implementada em MatLab (iterativa): function [Arvore, Raiz] = RemoverElementoABP (Elem, Arvore, Raiz) % pesquisar o nodo com o elemento a remover indnodo = PesquisarElementoABP(Elem, Arvore, Raiz); if indnodo == 0 % se o elemento não existe na árvore return; 20

21 % 1º caso: nodo a remover tem 2 filhos if Arvore(indNodo).Esquerda ~= 0 & Arvore(indNodo).Direita ~= 0 altesq = AlturaArvore(Arvore, Arvore(indNodo).Esquerda); altdir = AlturaArvore(Arvore, Arvore(indNodo).Direita); if altesq > altdir indsub = IndiceMaiorElementoABP(Arvore, Arvore(indNodo).Esquerda, indnodo); else indsub = IndiceMenorElementoABP(Arvore, Arvore(indNodo).Direita, indnodo); indpaisub = PesquisarNodoPai(Arvore(indSub).Elemento, Arvore, indnodo, indnodo); Arvore(indNodo).Elemento = Arvore(indSub).Elemento; if Arvore(indPaiSub).Esquerda == indsub Arvore(indPaiSub).Esquerda = Arvore(indSub).Esquerda; else Arvore(indPaiSub).Direita = Arvore(indSub).Direita; [Arvore, Raiz] = LibertarNodoArvore(Arvore, Raiz, indsub); return; 21

22 % 2º caso: nodo a remover é uma folha if Arvore(indNodo).Esquerda == 0 & Arvore(indNodo).Direita == 0 if indnodo == Raiz % o elemento a remover está na raiz da árvore; portanto, a árvore fica vazia Raiz = 0; return; painodo = PesquisarNodoPai(Elem, Arvore, Raiz, 0); if Arvore(paiNodo).Esquerda == indnodo Arvore(paiNodo).Esquerda = 0; else Arvore(paiNodo).Direita = 0; [Arvore, Raiz] = LibertarNodoArvore(Arvore, Raiz, indnodo); return; 22

23 % 3º caso: o nodo a remover apenas tem filho esquerdo if Arvore(indNodo).Esquerda ~= 0 if indnodo == Raiz % o elemento a remover está na raiz da árvore Raiz = Arvore(Raiz).Esquerda; [Arvore, Raiz] = LibertarNodoArvore(Arvore, Raiz, indnodo); return; painodo = PesquisarNodoPai(Elem, Arvore, Raiz, 0); if Arvore(paiNodo).Esquerda == indnodo Arvore(paiNodo).Esquerda = Arvore(indNodo).Esquerda; else Arvore(paiNodo).Direita = Arvore(indNodo).Esquerda; [Arvore, Raiz] = LibertarNodoArvore(Arvore, Raiz, indnodo); return; 23

24 % 4º caso: o nodo a remover apenas tem filho direito if painodo == 0 Raiz = Arvore(Raiz).Direita; [Arvore, Raiz] = LibertarNodoArvore(Arvore, Raiz, indnodo); return; painodo = PesquisarNodoPai(Elem, Arvore, Raiz, 0); if Arvore(paiNodo).Esquerda == indnodo Arvore(paiNodo).Esquerda = Arvore(indNodo).Direita; else Arvore(paiNodo).Direita = Arvore(indNodo).Direita; [Arvore, Raiz] = LibertarNodoArvore(Arvore, Raiz, indnodo); 24

25 Operações auxiliares da operação remover elemento de uma ABP Operação: Determinar o índice do nodo pai do nodo que contem um dado elemento Parâmetros: Entrada: elemento (Elem), árvore (Arvore), raiz da árvore (Raiz) e pai da raiz (pairaiz) Saída: índice do nodo pai do nodo com Elem (painodo) Função implementada em MatLab (recursiva): Nota: CompararElementos é uma operação específica do problema function [painodo] = PesquisarNodoPai (Elem, Arvore, Raiz, pairaiz) comp = CompararElementos(Arvore(Raiz).Elemento, Elem); if comp == 0 painodo = pairaiz; elseif comp > 0 painodo = PesquisarNodoPai(Elem, Arvore, Arvore(Raiz).Esquerda, Raiz); else painodo = PesquisarNodoPai(Elem, Arvore, Arvore(Raiz).Direita, Raiz); 25

26 Operação: Determinar o índice do maior elemento (o que se encontra no nodo mais à direita) Parâmetros: Entrada: árvore (Arvore), raiz da árvore (Raiz) e pai da raiz (pairaiz) Saída: índice do nodo que contém o maior elemento da árvore (indmaior) Função implementada em MatLab (recursiva): function [indmaior] = IndiceMaiorElementoABP (Arvore, Raiz, pairaiz) if Arvore(Raiz).Direita == 0 indmaior = Raiz; else indmaior = IndiceMaiorElementoABP(Arvore, Arvore(Raiz).Direita, Raiz); 26

27 Operação: Determinar o índice do menor elemento (o que se encontra no nodo mais à esquerda) Parâmetros: Entrada: árvore (Arvore), raiz da árvore (Raiz) e pai da raiz (pairaiz) Saída: índice do nodo que contém o maior elemento da árvore (indmenor) Função implementada em MatLab (recursiva): function [indmenor] = IndiceMenorElementoABP (Arvore, Raiz, pairaiz) if Arvore(Raiz).Esquerda == 0 indmenor = Raiz; else indmenor = IndiceMenorElementoABP(Arvore, Arvore(Raiz).Esquerda, Raiz); 27

EAD ARVORE BINÁRIA - ARMAZENAMENTO NÃO SEQUENCIAL COM VETORES

EAD ARVORE BINÁRIA - ARMAZENAMENTO NÃO SEQUENCIAL COM VETORES EAD ARVORE BINÁRIA - ARMAZENAMENTO NÃO SEQUENCIAL COM VETORES Estrutura de dados: - Arvore é um vetor em que cada componente (nodo) é composto por 3 campos: - Elemento (informação a tratar), que pode ser

Leia mais

EAD PILHA - DEFINIÇÃO

EAD PILHA - DEFINIÇÃO EAD PILHA - DEFINIÇÃO Os seus elementos são processados pela ordem inversa à ordem de chegada: - o último elemento a entrar na Pilha é o primeiro a sair (LIFO Last In First Out ). Qualquer operação que

Leia mais

EAD Árvore - representação usando listas ligadas

EAD Árvore - representação usando listas ligadas 5.1. Definição - A pesquisa de um elemento numa árvore binária de pesquisa implica - fazer uma travessia da árvore até se encontrar o elemento procurado, ou - se concluir da sua inexistência. - As travessias

Leia mais

- o primeiro elemento a entrar na fila é o primeiro a sair (FIFO First In First Out ).

- o primeiro elemento a entrar na fila é o primeiro a sair (FIFO First In First Out ). EAD FILA - DEFINIÇÃO Os seus elementos são processados por ordem de chegada: - o primeiro elemento a entrar na fila é o primeiro a sair (FIFO First In First Out ). Algumas operações realizam-se na cabeça

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

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

ESTRUTURA DE DADOS E ALGORITMOS. Árvores Binárias de Busca. Cristina Boeres

ESTRUTURA DE DADOS E ALGORITMOS. Árvores Binárias de Busca. Cristina Boeres ESTRUTURA DE DADOS E ALGORITMOS Árvores Binárias de Busca Cristina Boeres Árvore Binária de Busca 30! construída de tal forma que, para cada nó: nós com chaves menores estão na sub-árvore esquerda nós

Leia mais

Algoritmos de pesquisa

Algoritmos de pesquisa Define-se pesquisa como a operação que permite encontrar ou concluir que não existe, um dado elemento num dado conjunto. A pesquisa de um elemento pode ser feita num conjunto ordenado ou não. Quando o

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 2 Árvore Binária de Busca Definição: uma árvore binária de busca (ABB) é uma árvore binária na qual

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 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

ÁRVORE BINÁRIA DE BUSCA

ÁRVORE BINÁRIA DE BUSCA ÁRVORE BINÁRIA DE BUSCA Introdução O algoritmo de busca binária em vetores tem bom desempenho e deve ser usado quando temos os dados já ordenados. No entanto, se precisarmos inserir e remover elementos

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. 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

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

Á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

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 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

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

Universidade Federal de Mato Grosso Estrutura de Dados II

Universidade Federal de Mato Grosso Estrutura de Dados II Universidade Federal de Mato Grosso Estrutura de Dados II Curso de Ciência da Computação Prof. Thiago P. da Silva thiagosilva@ufmt.br Agenda Definições Fator de Balanceamento Estrutura de um Nó Operações

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

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

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

Árvores Binárias de Pesquisa (ABP) INF01203 Estruturas de Dados. Operações. Árvores Binárias de Pesquisa (ABP) Caminhamento Central à Esquerda

Árvores Binárias de Pesquisa (ABP) INF01203 Estruturas de Dados. Operações. Árvores Binárias de Pesquisa (ABP) Caminhamento Central à Esquerda Árvores Binárias de Pesquisa (ABP) INF03 Estruturas de Dados Árvores Binárias de Pesquisa apresentam uma relação de ordem entre os nodos ordem é definida por um campo denominado chave esq chave inf dir

Leia mais

Árvores Binária de Busca. Prof. César Melo DCC/ICE/UFAM

Árvores Binária de Busca. Prof. César Melo DCC/ICE/UFAM Árvores Binária de Busca Prof. César Melo DCC/ICE/UFAM Introdução O algoritmo de busca binária em vetores tem bom desempenho e deve ser usado quando temos os dados já ordenados. No entanto, se precisarmos

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

INF 1010 Estruturas de Dados Avançadas. Árvores binárias

INF 1010 Estruturas de Dados Avançadas. Árvores binárias INF 1010 Estruturas de Dados Avançadas Árvores binárias 1 Árvore estrutura hierárquica: A B E F C D G A B C E F D G A B C D E F G (A (B (E, F)), C, (D (G))) 05/09/16 2 Árvore - definições árvore: nó raiz

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

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

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. Árvores M-Vias. Métodos de Pesquisa de Dados. de Pesquisa (ANP) VANTAGENS EXEMPLO

Árvores. Árvores M-Vias. Métodos de Pesquisa de Dados. de Pesquisa (ANP) VANTAGENS EXEMPLO Métodos de Pesquisa de Dados Árvores M-Vias Encontrar um dado em um conjunto de dados de forma eficiente Baseia-se na noção de uma chave (índice) de pesquisa Aplicação típica: SGBD Busca de dados em disco

Leia mais

Árvore Binária de Busca. Prof. César Melo

Árvore Binária de Busca. Prof. César Melo Árvore Binária de Busca Prof. César Melo Introdução O algoritmo de busca binária em vetores tem bom desempenho e deve ser usado quando temos os dados já ordenados. No entanto, se precisarmos inserir e

Leia mais

GGI026 - Árvore rubro-negra - Remoção

GGI026 - Árvore rubro-negra - Remoção GGI026 - Árvore rubro-negra - Remoção Marcelo K. Albertini 11 de Setembro de 2013 2/28 Aula de hoje Nesta aula veremos Remoção em Árvores rubro-negras 3/28 Remoção em árvores rubro-negras Metodologia Possibilidade

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

Á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 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

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

Estruturas de Dados. Profº Carlos Alberto Teixeira Batista

Estruturas de Dados. Profº Carlos Alberto Teixeira Batista Estruturas de Dados Profº Carlos Alberto Teixeira Batista E-mail: carlos.batista@facape.br carlos36_batista@yahoo.com.br Árvores São estruturas de dados adequadas para a representação de hierarquias. Uma

Leia mais

EAD Árvore - representação usando listas ligadas

EAD Árvore - representação usando listas ligadas 4.1. Definição É uma árvore binária em que os seus nodos têm associado uma chave, que - determina a sua posição de colocação na árvore e - obedece às seguintes regras: a chave de um nodo é - maior do que

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

Busca em vetores. Para encontrar um elemento em um vetor desordenado é caro Porém, inserir ou remover é barato.

Busca em vetores. Para encontrar um elemento em um vetor desordenado é caro Porém, inserir ou remover é barato. Busca em vetores Para encontrar um elemento em um vetor desordenado é caro Porém, inserir ou remover é barato. Busca em vetores Quando especificamos uma propriedade que garanta alguma organização, isto

Leia mais

ESTRUTURA DE DADOS DCC013. Árvore Binária de Busca

ESTRUTURA DE DADOS DCC013. Árvore Binária de Busca ESTRUTURA DE DADOS DCC013 Árvore Binária de Busca Árvore Binária de Busca Propriedade fundamental da árvore binária de busca Valor da chave da raiz é Maior do que o valor da chave da subárvore da esquerda

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

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 3) Estruturas de Dados 2 Organização dos dados: Linear: Listas, pilhas, filas. Relação sequencial.

Leia mais

1/36 LISTAS. Programação II

1/36 LISTAS. Programação II 1/36 LISTAS Estrutura de Dados 2/36 Estrutura de Dados Definição - Uma Estrutura de Dados é: - uma coleção de tipos de dados, composta por tipos não estruturados básicos, tipos estruturados ou uma mistura

Leia mais

Lista com saltos - generalidades

Lista com saltos - generalidades Lista com saltos - generalidades - Foram propostas em 1989 por William Pugh, professor da Universidade de Maryland; - Permitem operações de consulta, inserção e remoção mais eficientes do que as listas

Leia mais

Árvores Binárias de Busca (ABB) 18/11

Árvores Binárias de Busca (ABB) 18/11 Árvores Binárias de Busca (ABB) 18/11 Definição Uma Árvore Binária de Busca possui as mesmas propriedades de uma AB, acrescida da seguintes propriedade: Para todo nó da árvore, se seu valor é X, então:

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. 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

Estruturas de Dados. Aula 08. Árvores AVL II. Karina Mochetti

Estruturas de Dados. Aula 08. Árvores AVL II. Karina Mochetti Estruturas de Dados 2018.2 Árvore AVL Uma Árvore AVL (Adelson, Velskii e Landis) T é uma Árvore Binária de Busca Balanceada, tal que: T é vazia; T consiste de um nó raiz k e duas subárvores binárias Te

Leia mais

Árvores B. Definição: Seja t a ordem da árvore B. Uma árvore B de ordem t é uma árvore ordenada que é vazia, ou que satisfaz as seguintes condições:

Árvores B. Definição: Seja t a ordem da árvore B. Uma árvore B de ordem t é uma árvore ordenada que é vazia, ou que satisfaz as seguintes condições: Árvores B IFRN/RN Árvores B Criadas por Bayes e McCreight em 1972 Em algumas aplicações a quantidade de dados é muito grande para que as chaves possam ser armazenadas somente em memória É necessário o

Leia mais

Árvore B. Uma Árvore B de ordem m éumaárvore,talque: Cada nó contém no máximo m

Árvore B. Uma Árvore B de ordem m éumaárvore,talque: Cada nó contém no máximo m Árvore B Uma Árvore B de ordem m éumaárvore,talque: Cada nó contém no máximo m 1valores; Os valores dentro de cada nó estão ordenados; Todos os valores na subárvore esquerda de um valor são menores que

Leia mais

Árvores binárias de busca

Árvores binárias de busca Árvores binárias de busca Introdução à Ciência de Computação II Diego R. Amancio Baseado no material do Prof. Thiago A. S. Pardo Árvore binárias n Árvores de grau 2, isto é, cada nó tem dois filhos, no

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

Á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

Árvores Binárias de Busca

Árvores Binárias de Busca Árvores Binárias de Busca 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

Leia mais

Aula 20: Árvores Binárias de Busca. Algoritmos de busca e inserção

Aula 20: Árvores Binárias de Busca. Algoritmos de busca e inserção 0.1 Aula 0: Árvores Binárias de Busca Conceitos básicos Algoritmos de busca e inserção Caminhos externo e interno 0. Problema de busca s i = chave S = { s 1,..., s n }, s 1

Leia mais

ÁRVORES BALANCEADAS (AVL)

ÁRVORES BALANCEADAS (AVL) ÁRORES BALANCEADAS (AL) PALO JOSÉ DA SILA E SILA 1. Árvores balanceadas Como já vimos anteriormente, o uso de árvores binárias de busca sem a preocupação com seu balanceamento pode levar a um aumento de

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

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

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- Algoritmos e Estruturas de Dados Carlos Alberto Alonso Sanches Juliana de Melo Bezerra Árvores CES- Operações sobre uma árvore Estruturas para armazenar árvores Contígua Contígua melhorada Encadeada

Leia mais

Universidade Federal de Mato Grosso

Universidade Federal de Mato Grosso Universidade Federal de Mato Grosso Estrutura de Dados II Curso de Ciência da Computação Prof. Thiago P. da Silva thiagosilva@ufmt.br Material basedado em [Kurose&Ross 2009] e [Gonçalves, 2007] Agenda

Leia mais

Algoritmos de pesquisa

Algoritmos de pesquisa Define-se pesquisa como a operação que permite encontrar ou concluir que não existe, um dado elemento num dado conjunto. A pesquisa de um elemento pode ser feita num conjunto ordenado ou não. Quando o

Leia mais

Árvore Vermelho-Preta. Estrutura de Dados II Jairo Francisco de Souza

Árvore Vermelho-Preta. Estrutura de Dados II Jairo Francisco de Souza Árvore Vermelho-Preta Estrutura de Dados II Jairo Francisco de Souza Introdução As árvores Vermelho-preto são árvores binárias de busca Também conhecidas como Rubro-negras ou Red-Black Trees Foram inventadas

Leia mais

Conceitos gerais Terminologia Forma de Representação de Árvores Árvores Binárias

Conceitos gerais Terminologia Forma de Representação de Árvores Árvores Binárias Conceitos gerais Terminologia Forma de Representação de Árvores Árvores Binárias Conceitos gerais Representação por Contiguidade Física Representação por Encadeamento Operações 2 Conceitos gerais Uma árvore

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

UNIVERSIDADE DA BEIRA INTERIOR

UNIVERSIDADE DA BEIRA INTERIOR UNIVERSIDADE DA BEIRA INTERIOR Programação II 1º Semestre Frequência 2 Resolução 07/01/2019 1. [1,25 val] - Análise de Complexidade dos Algoritmos Considere o seguinte bloco de código em linguagem C: for

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 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 Binárias de Busca (ABB) 18/11

Árvores Binárias de Busca (ABB) 18/11 Árvores Binárias de Busca (ABB) 18/11 Definição Uma Árvore Binária de Busca possui as mesmas propriedades de uma AB, acrescida da seguintes propriedade: Para todo nó da árvore, se seu valor é X, então:

Leia mais

LISTAS - ARMAZENAMENTO NÃO SEQUENCIAL COM MEMÓRIA DINÂMICA

LISTAS - ARMAZENAMENTO NÃO SEQUENCIAL COM MEMÓRIA DINÂMICA LISTAS - ARMAZENAMENTO NÃO SEQUENCIAL COM MEMÓRIA DINÂMICA int *Lista; Lista 9 14 18... 976 982 Tamanho Máximo: - Variável Acesso: - Sequencial Tamanho atual: - Percorrer a lista até ao fim e contar os

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 4) Estruturas de Dados 2 Organização dos dados: Linear: Listas, pilhas, filas. Relação sequencial.

Leia mais

UNIVERSIDADE DA BEIRA INTERIOR

UNIVERSIDADE DA BEIRA INTERIOR UNIVERSIDADE DA BEIRA INTERIOR Programação II 2º Semestre Exame Época Norma (15 val) Resolução 22/06/2018 1 [1,00 val + 1,00 val] - Memória Dinâmica Considere as seguintes declarações de variáveis: int

Leia mais

O problema da busca (ou pesquisa) - Dado um conjunto de elementos, onde cada um é identificado por uma chave, o objetivo da busca é localizar, nesse

O problema da busca (ou pesquisa) - Dado um conjunto de elementos, onde cada um é identificado por uma chave, o objetivo da busca é localizar, nesse Método de Busca O problema da busca (ou pesquisa) - Dado um conjunto de elementos, onde cada um é identificado por uma chave, o objetivo da busca é localizar, nesse conjunto, o elemento que corresponde

Leia mais

Árvores Rubro-Negras. Árvores Rubro-Negras. (Vermelho-Preta) Estrutura da Árvore. Estrutura da Árvore

Árvores Rubro-Negras. Árvores Rubro-Negras. (Vermelho-Preta) Estrutura da Árvore. Estrutura da Árvore Árvores Rubro-Negras Árvores Rubro-Negras (Vermelho-Preta) Árvore Binária de Pesquisa (ABP) com nodos coloridos de vermelho e preto Árvore balanceada Qualquer caminho da raiz até as folhas, nenhum caminho

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

O conjunto de registros pode ser: Um vetor de registros Uma lista encadeada Uma árvore Etc.

O conjunto de registros pode ser: Um vetor de registros Uma lista encadeada Uma árvore Etc. Método de Busca O problema da busca (ou pesquisa) - Dado um conjunto de elementos, onde cada um é identificado por uma chave, o objetivo da busca é localizar, nesse conjunto, o elemento que corresponde

Leia mais

Listas Estáticas. SCC Algoritmos e Estruturas de Dados I. Prof. Fernando V. Paulovich. *Baseado no material do Prof.

Listas Estáticas. SCC Algoritmos e Estruturas de Dados I. Prof. Fernando V. Paulovich. *Baseado no material do Prof. Listas Estáticas 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

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

ESTRUTURAS DE DADOS (LEI, LM, LEE) Universidade da Beira Interior, Departamento de Informática Hugo Pedro Proença, 2018/2019

ESTRUTURAS DE DADOS (LEI, LM, LEE) Universidade da Beira Interior, Departamento de Informática Hugo Pedro Proença, 2018/2019 ESTRUTURS DE DDOS (LEI, LM, LEE) Universidade da Beira Interior, Departamento de Informática Hugo Pedro Proença, 2018/2019 Árvores Binárias o contrário das estruturas focadas até ao momento, as árvores

Leia mais

Árvores Vermelho-Preto

Árvores Vermelho-Preto Árvores Vermelho-Preto SCC0202 - Algoritmos e Estruturas de Dados I Prof. Fernando V. Paulovich http://www.icmc.usp.br/~paulovic paulovic@icmc.usp.br Instituto de Ciências Matemáticas e de Computação (ICMC)

Leia mais

Árvores Vermelho-Preto

Árvores Vermelho-Preto SCC0202 - Algoritmos e Estruturas de Dados I Prof. Fernando V. Paulovich http://www.icmc.usp.br/~paulovic paulovic@icmc.usp.br Instituto de Ciências Matemáticas e de Computação (ICMC) Universidade de São

Leia mais

UNILASALLE Curso de Bacharelado em Ciência da Computação. Estrutura de Dados II Prof. Magalí T. Longhi. Árvores AVL*

UNILASALLE Curso de Bacharelado em Ciência da Computação. Estrutura de Dados II Prof. Magalí T. Longhi. Árvores AVL* UNILASALLE Curso de Bacharelado em Ciência da Computação Estrutura de Dados II Prof. Magalí T. Longhi Árvores AVL* * Material preparado para a disciplina de Estrutura de Dados II do Curso de Bacharelado

Leia mais

Árvores Binárias e Busca. Jeane Melo

Árvores Binárias e Busca. Jeane Melo Árvores Binárias e Busca Jeane Melo Roteiro Parte 1 Árvores Relação hierárquica Definição Formal Terminologia Caminhamento em Árvores Binárias Exemplos Parte 2 Busca seqüencial Busca Binária Grafos Conjunto

Leia mais

Árvores binárias de busca

Árvores binárias de busca Árvores binárias de busca SCC-214 Projeto de Algoritmos Thiago A. S. Pardo Árvore binárias Árvores de grau 2, isto é, cada nó tem dois filhos, no máximo Raiz D B A E C F Terminologia: filho esquerdo filho

Leia mais

Aula T19 BCC202 Pesquisa (Parte 1) Pesquisa Binária. Túlio Toffolo

Aula T19 BCC202 Pesquisa (Parte 1) Pesquisa Binária. Túlio Toffolo Aula T19 BCC202 Pesquisa (Parte 1) Pesquisa Binária Túlio Toffolo www.decom.ufop.br/toffolo Pesquisa em Memória Primária n Introdução - Conceitos Básicos n Pesquisa Sequencial n Pesquisa Binária n Árvores

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

Á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 AVL e Árvores B. Jeane Melo

Árvores AVL e Árvores B. Jeane Melo Árvores AVL e Árvores B Jeane Melo Roteiro Árvores Binárias Árvores AVL Definição Motivação Balanceamento Operações de rebalanceamento Árvores B Introdução Árvores Binárias Árvores binárias Cada nó tem

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

Árvore binária - definição

Árvore binária - definição Árvore binária - definição árvore binária: conjunto finito de nós Æ (árvore vazia) {raiz, sub-árvore esquerda, sub-árvore direita}, onde sae e sad são conjuntos disjuntos Æ ou raiz /* nó da árvore binária

Leia mais

ESTRUTURA DE DADOS E ALGORITMOS HEAPS E LISTAS DE PRIORIDADES

ESTRUTURA DE DADOS E ALGORITMOS HEAPS E LISTAS DE PRIORIDADES ESTRUTURA DE DADOS E ALGORITMOS HEAPS E LISTAS DE PRIORIDADES Listas de Prioridades! Em muitas aplicações, dados de uma coleção são acessados por ordem de prioridade! A prioridade associada a um dado pode

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

Introdução a AVL: teoria e prática. 22/11, 25/11 e 30/11

Introdução a AVL: teoria e prática. 22/11, 25/11 e 30/11 Introdução a AVL: teoria e prática 22/11, 25/11 e 30/11 Árvores binárias de busca (ABB) Árvores de grau 2, isto é, cada nó tem dois filhos, no máximo Raiz B A C Terminologia: filho esquerdo filho direito

Leia mais

Estruturas de Dados. Árvores. Onde Estamos? Introdução à estrutura de dados. Alocação dinâmica de memória. Pilhas. Filas.

Estruturas de Dados. Árvores. Onde Estamos? Introdução à estrutura de dados. Alocação dinâmica de memória. Pilhas. Filas. Estruturas de Dados Árvores Prof. Rodrigo Rocha prof.rodrigorocha@yahoo.com http://www.bolinhabolinha.com Ementa Introdução à estrutura de dados. Alocação estática de memória. Alocação dinâmica de memória.

Leia mais

Estruturas de dados e algoritmos fundamentais

Estruturas de dados e algoritmos fundamentais Ministério da Ciência, Tecnologia e Ensino Superior U.C. 21046 Estruturas de dados e algoritmos fundamentais 21 de Junho de 2013 INSTRUÇÕES PARA A RESOLUÇÃO DO EXAME, ACONSELHA-SE QUE LEIA ATENTAMENTE

Leia mais

Listas Lineares. continuando...

Listas Lineares. continuando... Listas Lineares continuando... 1 Listas! relembrando: listas lineares agrupa informações referentes aum conjunto de elementos que, de alguma forma, se relacionam entre si! Uma lista linear ou está vazia,

Leia mais