Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas


Fundamentos Mot, Notas de aula de Engenharia Telemática

Aula sobre árvores binarias

Tipologia: Notas de aula

Antes de 2010

Compartilhado em 24/11/2010

samuel-santos-22
samuel-santos-22 🇧🇷

4.6

(41)

262 documentos

1 / 17

Toggle sidebar

Esta página não é visível na pré-visualização

Não perca as partes importantes!

bg1
1
CursoSuperior de Tecnologia emTelemática
Programação e Estruturas de Dados
ÁrvoresFundamentose Implementações
Copyright©2010
Prof. CésarRocha
cesarocha@ifpb.edu.br
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff

Pré-visualização parcial do texto

Baixe Fundamentos Mot e outras Notas de aula em PDF para Engenharia Telemática, somente na Docsity!

1

Curso Superior de Tecnologia em Telemática Programação e Estruturas de Dados

Árvores – Fundamentos e Implementações

Copyright© Prof. César Rocha [email protected]

Objetivos

ß Explorar os conceitos fundamentais acerca do uso de árvoresárvores utilizando a linguagem C ß Organização e implementação, características, vantagens, desvantagens, regras de utilização, operações básicas e algoritmos de implementação

ß Será abordada ainda uma implementação de árvore bastante conhecida: árvore bináriaárvore binária

ß Este módulo será utilizado como referência na entrega dos futuros projetos ß Implementação das estruturas e algoritmos, criação das bibliotecasbibliotecas e práticas de laboratório

Motivação

ß Ao longo de todo o curso, temos examinado estruturas de dados que podem ser chamadas de unidimensionais ou lineares ß Por exemplo: TADs que usam vetores e todas as listas.

ß A importância destes tipos de estruturas é incontestável, porém... ß elas não são adequadas para representarmos dados que devem ser dispostos de maneira hierárquica ß não faz sentido, por exemplo, representar uma árvore de diretórios de um sistema operacional utilizando um vetor linear e pré-dimensionado

Conceitos

ß Uma árvoreárvore consiste de uma estrutura não-linear que representa uma relação de hierarquia

ß Uma árvore é composta por um conjunto de nósnós

ß Existe um nó R, chamado de nó raizraiz ß Este nó contém zero ou mais sub-árvores, cujas raízes são ligadas diretamente à R ß Os nós raízes das sub-árvores são ditos filhosfilhos do nó R ß Nós que não têm filhos são chamados de folhasfolhas

ß É bastante comum desenhar as árvores com o nó raiz para cima e os nós folhas para baixo

Grau

ß O número de sub-árvores presentes em um determinado nó indicará o GrauGrau desse nó ß Qual o grau de cada nó mostrado anteriormente?

ß Conceito de Grau Máximo:

ß número máximo de sub-árvores que o nó pode ser raiz

ß Nós que não tem grau, são chamados de nós folhas

ß Para identificar os nós de uma estrutura, usamos a relação de hierarquia existente em uma árvore genealógica ß Nó Filho, Nó pai, Nó neto, Nó irmão, ...

Nível e Altura

ß Conceito de NívelNível :

ß Representa a distância de um nó até a raiz ß Qual o nível do nó F (slide 6)?

ß Importante: o nó que apresentar o maior nível fornecerá a alturaaltura de uma árvore ß Só existe um caminho da raiz para qualquer nó

ß O número de filhos permitido em cada nó e as informações armazenadas nestes nós e que diferenciam os diversos tipos de árvores existentes

ß Em uma árvore binária, todos os seus nós possuem, no máximo, duas sub-duas sub-árvoresárvores ß Cada nó pode ter zero, um ou dois filhos. ß E ainda, é uma árvore de grau máximo igual a dois.

ß As duas sub-árvores possíveis em cada nó são também denominadas de: ß sub-árvore esquerda (sae). ß sub-árvore direita (sad).

ß Árvore binária completa

ß Árvore em que cada nó possui dois filhos (exceto os nós folhas, é claro).

Conceitos

sae sad

11

Graficamente

ß Observe:

ß Onde:

10

30

60

50

Nível 1^20

Nível 2

Nível 3

40

... ...

Raízes das sub-árvores Nós folhas (grau = 0)

Esquerda Direita

Grau máximo = 2

Considerações

ß ß Importante!Importante!

ß Uma árvore é representada pelo endereço do nó raiz ß Uma árvore vazia é representada pelo valor NULL ß O nível de uma árvore que contém apenas o nó raiz é 0 ß A altura de uma árvore vazia é negativa e vale -

ß Percurso:

ß Um percurso define a ordem em que os nós de uma árvore serão processados ß Trabalharemos com três tipos de percursos: Pré-ordem, In-ordem e Pós-ordem

14

Tipos de percursos

ß Algoritmos de percursos em árvores: å Pré-ordem ß Utiliza a raiz ß Percorre a sub-árvore esquerda ß Percorre a sub-árvore direita ç In-ordem ß Percorre a sub-árvore esquerda ß Utiliza a raiz ß Percorre a sub-árvore direita é Pós-ordem ß Percorre a sub-árvore esquerda ß Percorre a sub-árvore direita ß Utiliza a raiz

// Algoritmo recursivo pre-ordem void preordem( arvore arv ) { if(!vazia(printf( “%d”, arv->info arv ){ ); preordem( arv->esqpreordem( arv->dir );); } } // Algoritmo recursivo in-ordem void inordem( arvore arv ) { if(!vazia(inordem( arv->esq arv ){ ); printf( “%d”, arv->infoinordem( arv->dir ); ); } } // Algoritmo recursivo pos-ordem void posordem( arvore arv ) { if(!vazia(posordem( arv->esq arv ){ ); posordem( arv->dirprintf( “%d”, arv->info ); ); }}

Algoritmos em C

ß O que deverá ser feito pelo aluno:

ß Escolha e instalação do ambiente a ser trabalhado no laboratório ß Modelagem deste TAD (dados e operações) ß Implementação dos algoritmos de operações básicas vistos em sala de aula na linguagem C ß Utilização das regras de modelagem vistas no módulo anterior (criação de bibliotecas) e modularização ß Implantação de código legível e bem documentado ß Nomes de variáveis condizentes com o problema ß Prática de laboratório

Para um bom aproveitamento: Para um bom aproveitamento:

ß O aluno deve identificar a relação entre TAD (biblioteca e modularização) com a implementação da fila no código!

ß Resolva todas as questões da práprática detica de laboratólaboratório derio de áárvoresrvores

ß Procure o professor ou monitor da disciplina e questione conceitos, listas, etc.

ß Não deixe para codificar tudo e acumular assunto para a primeira avaliação. ß Este é apenas um dos assuntos abordados na prova!