TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS ESTRUTURAS DE DADOS AVANÇADAS Aula 12 1...
Transcript of TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS ESTRUTURAS DE DADOS AVANÇADAS Aula 12 1...
TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS
ESTRUTURAS DE DADOS AVANÇADASAula 12
105/08/2011 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com
AgendaArvores Binárias.
Operações em Arvores BináriasBibliografia
205/08/2011 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com
Operações em Arvores Binárias Inserção
A inserção começa com uma busca procurando pelo valor na árvore.
Se o elemento não existir na árvore:Introduz um novo nó na subárvore da esquerda, se o valor novo
é menor do que a raiz.Introduz um novo nó na subárvore da direita, se o valor novo
for maior do que a raizOs algoritmos 9.1 (versão iterativa) e 9.2 (versão
recursiva) demonstram o processo de inclusão de um elemento na árvore.
305/08/2011 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com
Operações em Arvores Binárias
405/08/2011 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com
Operações em Arvores BináriasPesquisaPara a busca em uma árvore binária por um valor
específico deve-se examinar a raiz.Se o valor for = à raiz ele existe na árvoreSe o valor for < que a raiz deve-se buscar na subárvore
da esquerda recursivamente nos nós da arvore até encontrar o valor desejado ou o fim da arvore.
Se o valor for > que a raiz deve-se buscar na subárvore da direita recursivamente nos nós da arvore até encontrar o valor desejado ou o fim da arvore..
505/08/2011 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com
Arvores Binárias - Pesquisa e ordenação Os algoritmos 9.3 (versão iterativa) e .4 (versão recursiva) demonstram o
processo de pesquisa de um elemento na árvore.
605/08/2011 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com
Arvores Binárias - Pesquisa e ordenação Exclusão - O processo de exclusão de um nó é mais complexo que as
operações anteriores. Para excluir um nó de uma árvore binária, deve-se considerar três casos distintos para realizar a exclusão. A exclusão de um nó que se encontra no fim da árvore, isto é, que seja uma
folha, é o caso mais simples de exclusão. Basta remover o nó da árvore
705/08/2011 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com
Arvores Binárias - Pesquisa e ordenação Exclusão de nó com um filho
Caso o nó que será excluído tenha um único filho, o pai do nó (avô do filho) herda o filho. Isto é, o filho assume a posição do pai na árvore.
805/08/2011 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com
Arvores Binárias - Pesquisa e ordenação Exclusão de nó com dois filhos Se o nó a ser excluído tiver dois filhos, o processo de exclusão poderá
operar de duas maneiras diferentes: Substituir o valor do nó a ser retirado pelo valor sucessor (o nó mais à
esquerda da subárvore direita). Substituir o valor do nó a ser retirado pelo valor antecessor (o nó mais à
direita da subárvore esquerda). Realizada a escolha, remove-se o nó sucessor (ou antecessor).
905/08/2011 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com
Arvores Binárias - Pesquisa e ordenação Algoritmo de exclusão na árvore
1005/08/2011 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com
Arvores Binárias - Pesquisa e ordenação Maior elemento
O maior elemento da árvore, nó com o maior valor, será encontrado sempre na folha mais à direita da árvore. Para encontrar o maior valor, basta procurar a partir da raiz sempre na subárvore da direita
1105/08/2011 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com
Arvores Binárias - Pesquisa e ordenação Menor elemento
O menor elemento da árvore, nó com o menor valor, será encontrado sempre na folha mais à esquerda da árvore [ ]. Para encontrar o menor valor, basta procurar a partir da raiz sempre na subárvore da esquerda.
1205/08/2011 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com
Arvores Binárias - Pesquisa e ordenação Percorrendo uma árvore
Uma operação comum é percorrer uma árvore binária, o que consiste em visitar todos os nós desta árvore segundo algum critério. Esse percurso, também chamado de travessia da árvore, pode ser feito de três formas :
Pré-ordem ou profundidade - os filhos de um nó são processados após o nó. Pós-ordem - os filhos são processados antes do nó. Em-ordem ou simétrica - em que se processa o filho à esquerda, o nó, e
finalmente o filho à direita.
1305/08/2011 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com
Arvores Binárias - Pesquisa e ordenação Percorrendo uma árvore - continuação
1405/08/2011 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com
Arvores Binárias - Pesquisa e ordenação Representações de árvores em C Árvores binárias podem ser representadas como um vetor de filhos
(programa 9.1) ou de forma dinâmica (programa 9.2 ).
1505/08/2011 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com
Arvores Binárias - Pesquisa e ordenação Representações de árvores em C - continuação
1605/08/2011 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com
Bibliografia
05/08/2011 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com 17
BIBLIOGRAFIA BÁSICA
1AZEREDO, Paulo A. Métodos de Classificação de Dados. Rio de Janeiro: Ed. Campus, 1996.
2LAUREANO, M. Estrutura de Dados com Algoritmos e C. 1ª Ed. São Paulo: Brasport, 2008.
3PEREIRA, Silvio do Lago. Estruturas de Dados Fundamentais – Conceitos e Aplicações. 7.ed. São Paulo: Érica, 2008.
BIBLIOGRAFIA COMPLEMENTAR
4KOFFMANN, E.B. Objetos, Abstração, Estrutura de Dados e Projetos. 1ª Ed. Rio de Janeiro: LTC, 2008.
5MORAES, Celso Roberto. Estruturas de Dados e Algoritmos.Uma abordagem didática. Edição revista e Ampliada. São Paulo: Editora Futura, 2003.
6WIRTH, Niklaus. Algoritmos e estruturas de dados. Rio de Janeiro: Prentice Hall do Brasil, 1989.
7ZIVIANI, N. Projeto de Algoritmos com implementações em Pascal e C , Editora Pioneira, 1999.