SlideShare uma empresa Scribd logo
1 de 98
Baixar para ler offline
Árvores - Conceitos e
binária
Prof: Sergio Souza Costa
Sobre mim
Sérgio Souza Costa
Professor - UFMA
Doutor em Computação Aplicada (INPE)
prof.sergio.costa@gmail.com

https://sites.google.com/site/profsergiocosta/home
http://www.slideshare.net/skosta/presentations?order=popular
https://twitter.com/profsergiocosta
http://gplus.to/sergiosouzacosta
Árvores
Conceitos
Árvores
• Estrutura não linear
• Hieráquica
• Recursiva
Árvores
• Nodos interligados de maneira hierárquica
• Nodo superior (raiz / pai), apontando para os seus
nodos filhos (folhas / filho).
Analogia no mundo real
• Estrutura organizacional de uma empresa
– Departamentos, setores, seções, etc.

• Organização de um livro
– Partes, capítulos, seções, parágrafos
Mais exemplos
Estrutura de um arquivo HTML
Mais exemplos
Hierarquia de diretorios e
arquivos
Representação
Tipos de nodos (nós)
raiz

nodos
interno

folha
Definições
• Raíz: um nodo sem pai
• Nodo: um elemento qualquer
• Folha: um nó que possui grau zero, ou seja, suas
subárvores são vázia.
• Sub-árvore: formada por todos os nodos filhos a
partir de um nodo qualquer
Definição geral
• Um nodo sem filhos e sem pai é uma árvore vazia.
• Um nodo com qualquer número de subárvores
descendentes é uma árvore
Esquema Geral

raiz
R

Subárvores

...
Sub-árvores
Sub-árvore: é aquela que se
forma a partir de um
determinado nó.
A árvore A possui 2 subárvores:
A = {B, C }
Árvore C possui 3 subárvores:
C = {D, E, F}
Onde
D = {G,H}
F = {I}
Exemplo
Exemplo
Exemplo
Exemplos de árvores
Caminho em árvore

Sequencia de nodos
ligando dois outros
nodos quaisquer.
Caminho em árvore
• Nota: Só existe um caminho desde a raiz até um
determinado nó.
Altura de uma árvore
• Altura é o tamanho do maior caminho desde a raiz
até uma folha
Altura de uma árvore
altura 3

altura 2

altura 1
altura 0
Altura de uma árvore
• A altura da raiz é 0.
• Por definição, a altura de uma árvore vazia é -1.
Grau de uma árvore
• O grau de uma árvore é dado pela quantidade de
descendentes permitido a cada nodo.
Exemplo de árvore de grau 4
Exemplo de árvore de grau 2
+

1

*

6

2
Árvores
Binárias
Árvores Binárias
• Árvore binária é um caso especial de árvore em que nenhum
nodo tem grau superior a 2, isto é, nenhum nodo tem mais
que dois filhos.
– Adicionalmente, para árvores binárias existe um "senso
de posição", ou seja, distingue-se entre uma subárvore
esquerda e uma direita. Exemplos
a

a

b

b
a

b

c
Árvores Binárias
• Uma árvore binária é uma árvore que
pode ser nula, ou então tem as seguintes
características:
– existe um nodo especial denominado raiz;
– os demais nodos são particionados em T1, T2
estruturas disjuntas de árvores binárias;
– T1 é denominada subárvore esquerda e T2,
subárvore direita da raiz.
Árvores Binárias
• Uma árvore binária é uma árvore que
pode ser nula, ou então tem as seguintes
características:
– existe um nodo especial denominado raiz;
– os demais nodos são particionados em T1, T2
estruturas disjuntas de árvores binárias;
– T1 é denominada subárvore esquerda e T2,
subárvore direitaem a raiz.
da
Observ
na
sividade
recur
ição
sua defin
Exemplo
Chaves de campeonatos
ÁRVORE BINÁRIA - EXEMPLO
Chaves de campeonatos
Terminologias
Árvore estritamente binária: cada nó tem
grau 0 ou 2, ou seja, todo nó tem 0 ou 2
filho

a)

b)
Terminologias
Árvore estritamente binária: cada nó tem
grau 0 ou 2, ou seja, todo nó tem 0 ou 2
filho

a)

b)
Terminologias
Árvore binária completa é uma árvore
estritamente binária na qual todo nó que
apresente alguma sub-árvore vazia está
localizado no último ou no penúltimo nível da
árvore

a)

b)
Terminologias
Árvore binária completa é uma árvore
estritamente binária na qual todo nó que
apresente alguma sub-árvore vazia está
localizado no último ou no penúltimo nível da
árvore

a)

b)
Terminologias
Árvore binária cheia quando todos os nós internos
tem grau 2 e todas as folhas estão no mesmo
nível

a)

b)
Terminologias
Árvore binária cheia quando todos os nós internos
tem grau 2 e todas as folhas estão no mesmo
nível

a)

b)
Percurso em Árvores
Percurso em árvore binária
• Pré-ordem: visita a raiz, depois a sub-árvore da
esquerda e depois direita.
• Em-ordem: visita a sub-árvore esquerda, depois a
raiz, e finalmente a sub-árvore direita.
• Pós-ordem: visita a sub-árvore da esquerda, depois
da direita e por ultimo imprime a raiz.
Exemplo de percurso pré-ordem
+

1

*

6

+1*62

2
Exemplo de percurso em-ordem
+

1

*

6

1+6*2

2
Exemplo de percurso pós-ordem
+

1

*

6

162*+

2
Exemplo de percurso pós-ordem
+

1

*

6
o de
algoritm
Um
pósercurso
p
nverte
rdem co
o
infixa
notação
fixa
para pos

162*+

2
Arvore Binária: TDA
• Tipo de dados abstrato da árvore binária:
Vazia: () → A
// elemento, arvore esquerda direita
Nodo: E × SAE × SAD → A
Arvore Binária: TDA
• Tipo de dados abstrato da árvore binária:
Vazia: () → A
// elemento, arvore esquerda direita
Nodo: E × SAE × SAD → A
Que árvore é essa ?
A = Nodo (5, Vazia,
Nodo (8,
Nodo (4, Vazia, Vazia),
Vazia)))
Arvore Binária: TDA
• Tipo de dados abstrato da árvore binária:
Vazia: () → A
// elemento, arvore esquerda direita
Nodo: E × SAE × SAD → A
Que árvore é essa ?
A = Nodo (5, Vazia,
Nodo (8,
Nodo (4, Vazia, Vazia),
Vazia)))

5
8
4

Árvore vazia
Arvore Binária: TDA
• Operações acessoras:
sae:: A → A // retorna a subarvore esquerda
sad:: A → A // retorna a subarvore direita
element :: A → E // retorno o elemento do nó
Exercício
A = Nodo (5, Nil, Nodo (8, Nodo (4, Vazia, Vazia), Vazia)))
B = sae (A)
C = sad (A)
D = sae(C)
X = element (D)
Y = element (A)
Exercício
A = Nodo (5, Nil, Nodo (8, Nodo (4, Vazia, Vazia), Vazia)))
B = sae (A)
C = sad (A)
D = sae(C)
X = element (D)
Y = element (A)

A

5

8

4
Exercício
A = Nodo (5, Nil, Nodo (8, Nodo (4, Vazia, Vazia), Vazia)))
B = sae (A)
C = sad (A)
D = sae(C)
X = element (D)
Y = element (A)

A

5

B

8

4
Exercício
A = Nodo (5, Nil, Nodo (8, Nodo (4, Vazia, Vazia), Vazia)))
B = sae (A)
C = sad (A)
D = sae(C)
X = element (D)
Y = element (A)

A

5

C

B

8

4
Exercício
A = Nodo (5, Nil, Nodo (8, Nodo (4, Vazia, Vazia), Vazia)))
B = sae (A)
C = sad (A)
D = sae(C)
X = element (D)
Y = element (A)

A

5

C

B

8

D
4
Exercício
A = Nodo (5, Nil, Nodo (8, Nodo (4, Vazia, Vazia), Vazia)))
B = sae (A)
C = sad (A)
D = sae(C)
X = element (D)
Y = element (A)

A

5

C

B

8

D
4
Exercício
A = Nodo (5, Nil, Nodo (8, Nodo (4, Vazia, Vazia), Vazia)))
B = sae (A)
C = sad (A)
D = sae(C)
X = element (D)
Y = element (A)

A

5

C

B

8

D
4
Exercícios resolvidos
• Ainda sem codificar em C a nossa árvore, faremos os
seguintes exercícios.
• Podem fazer no papel ou bloco de notas, não
precisem compilar (apenas mentalmente).
• Usando recursividade e apenas as quatro operações
vistas anteriormente, vamos fazer os seguintes
exercícios.
Exercícios resolvidos
1. Some os valores dos elementos de uma arvore binária
int soma (ArvBin *a) {
if (a == Vazia())
return 0;

}
Exercícios resolvidos
1. Some os valores dos elementos de uma arvore binária
int soma (ArvBin *a) {
if (a == Vazia())
return 0;
return elem(a)
+ soma (sae(a))
+ soma (sad(a));
}
Exercícios resolvidos
1. Retorne a altura de uma árvore binaria. Onde a Altura é
o tamanho do maior caminho desde a raiz até uma folha.
Por definição, a altura de uma árvore vazia é -1.
int altura(ArvBin *a) {

}
Exercícios resolvidos
1. Retorne a altura de uma árvore binaria. Onde a Altura é
o tamanho do maior caminho desde a raiz até uma folha.
Por definição, a altura de uma árvore vazia é -1.
int altura(ArvBin *a) {
if (a == Vazia())
return -1;

}
Exercícios resolvidos
1. Retorne a altura de uma árvore binaria. Onde a Altura é
o tamanho do maior caminho desde a raiz até uma folha.
Por definição, a altura de uma árvore vazia é -1.
int altura(ArvBin *a) {
if (a == Vazia())
return -1;
return maior(
altura (sae (a)),
altura (sad (a))
) + 1;
}
Exercícios resolvidos
1. Retorne a altura de uma árvore binaria. Onde a Altura é
o tamanho do maior caminho desde a raiz até uma folha.
Por definição, a altura de uma árvore vazia é -1.
int altura(ArvBin *a) {
if (a == Vazia())
return -1;
return maior(
altura (sae (a)),
altura (sad (a))
) + 1;
}
Exercícios resolvidos
1. Retorne a altura de uma árvore binaria. Onde a Altura é
o tamanho do maior caminho desde a raiz até uma folha.
Por definição, a altura de uma árvore vazia é -1.
int maior (int v1, int v2) {
int altura(ArvBin *a) {
if
if (a == Vazia())(v1 > v2)
return -1; return v1 ;
return maior(else return v2;
}
altura (sae (a)),
altura (sad (a))
) + 1;
}
Codificação
• A árvore binária é representado pela estrutura
abaixo.
typedef struct ArvBin {
int elem;
struct ArvBin *sae;
struct ArvBin *sad;
} ArvBin;
Codificação
• Operações construtoras
ArvBin* Vazia () {
return NULL;
}
ArvBin* Nodo (int elem, ArvBin* sae, ArvBin* sad ) {
ArvBin* a = (ArvBin*)malloc (sizeof (ArvBin));
a->elem = elem;
a->sad = sad;
a->sae = sae;
return a;
}
Codificação
• Operações construtoras
ArvBin* Vazia () {
return NULL;
}
ArvBin* Nodo (int elem, ArvBin* sae, ArvBin* sad ) {
ArvBin* a = (ArvBin*)malloc (sizeof (ArvBin));
a->elem = elem;
a->sad = sad;
a->sae = sae;
return a;
}
Codificação
• Operações construtoras
ArvBin* Vazia () {
return NULL;
}
ArvBin* Nodo (int elem, ArvBin* sae, ArvBin* sad ) {
ArvBin* a = (ArvBin*)malloc (sizeof (ArvBin));
a->elem = elem;
a->sad = sad;
a->sae = sae;
return a;
}
Codificação
• Operações construtoras
ArvBin* Vazia () {
return NULL;
}
ArvBin* Nodo (int elem, ArvBin* sae, ArvBin* sad ) {
ArvBin* a = (ArvBin*)malloc (sizeof (ArvBin));
a->elem = elem;
a->sad = sad;
a->sae = sae;
return a;
}
Codificação
• Operações construtoras
ArvBin* Vazia () {
return NULL;
}
ArvBin* Nodo (int elem, ArvBin* sae, ArvBin* sad ) {
ArvBin* a = (ArvBin*)malloc (sizeof (ArvBin));
a->elem = elem;
a->sad = sad;
a->sae = sae;
return a;
}
Codificação
• Operações retornar os atributos da árvore.
int elem (ArvBin* b) { return b->elem;}
ArvBin* sae (ArvBin* b) { return b->sae;}
ArvBin* sad (ArvBin* b) { return b->sad;}
Codificação
• Código para visualizar uma árvore binária “deitada”
void mostra (ArvBin *a, int n) {
if (a) {
int i;
mostra (sad(a), n+1);
for (i = 0; i < n; i++) printf ("t");
printf ("%dn", elem(a));
mostra (sae(a), n+1);
}
}
Visualização
r
23

35

15

28
Árvore binária - Aplicações
• Uma importante aplicação das árvores binárias é
para a realização de buscas.
• O que as árvores abaixo tem em comum?
13

K

A

10

P
2
N

25

12

20

31

R
29
Árvore Binária De Busca
• Operações básicas
– Insere elemento
– Busca
– Remoção
INSERÇÃO
• Para adicionar um elemento x
– Se a árvore estiver vazia, adicione um novo
nó contendo o elemento x
– Se a raiz é maior que x então insira x na
subárvore esquerda, caso contrário
– insira x na subárvore direita
Inserir
Inserir 23
Inserir
Inserir 23

23
Inserir
Inserir 23

23
nil

nil
Inserir
Inserir 23
Inserir 15

23
nil

nil
Inserir
Inserir 23
Inserir 15

23
nil
15

nil
Inserir
Inserir 23
Inserir 15

23
nil
15
nil

nil

nil
Inserir
Inserir 23
Inserir 15

23
nil
15
nil

nil
Inserir
Inserir 23
Inserir 15
Inserir 35

23
nil
15
nil

nil
Inserir
Inserir 23
Inserir 15
Inserir 35

23
nil
35

15
nil

nil
Inserir
Inserir 23
Inserir 15
Inserir 35

23
nil
35

15
nil

nil

nil

nil
Inserir
Inserir 23
Inserir 15
Inserir 35

23

35

15
nil

nil

nil

nil
Inserir
Inserir 23
Inserir 15
Inserir 35
Inserir 28

23

35

15
nil

nil

nil

nil
Inserir
Inserir 23
Inserir 15
Inserir 35
Inserir 28

23

35

15
nil

nil

nil
28

nil
Inserir
Inserir 23
Inserir 15
Inserir 35
Inserir 28

23

35

15
nil

nil

nil
28
nil

nil

nil
Inserir
Inserir 23
Inserir 15
Inserir 35
Inserir 28

23

35

15
nil

nil

nil
28
nil

nil
Inserir - Código
ArvBin *insere (ArvBin *r, int x) {
if (r == NULL)
r = Nodo (x, NULL, NULL);
else if (x < elem(r) )
r->sae = insere(sae(r), x ) ;
else
r->sad = insere(sad(r), x ) ;
return r;
}
Testando - Inserir
23

35

15
nil
arv = insere(arv, 23);
arv = insere(arv, 15);
arv = insere(arv, 35);
arv = insere(arv, 28);

nil

nil
28
nil

nil
Busca
• Para encontrar um elemento x
– Se x é a raiz então x foi encontrado, caso
contrário
– Se x é menor que a raiz então procure x na
sub-árvore esquerda, caso contrário
– Procure x na sub-árvore direita de
– Se a árvore é vazia então a busca falha
Buscar
Há um 28
armazenado?

23

35

15
nil

nil

nil
28
nil

nil
Buscar
28 > 23
Há um 28
armazenado?

23

35

15
nil

nil

nil
28
nil

nil
Buscar
Há um 28
armazenado?

23

28 < 35
35

15
nil

nil

nil
28
nil

nil
Buscar
Há um 28
armazenado?

23

35

15
nil

nil

nil
28
nil

encontrou
nil
Código - Buscar

ArvBin* busca (ArvBin *r, int x) {
if ((!r) || (elem(r) == x))
return r;
else {
if (elem(r) < x)
return busca(sad(r),x);
else
return busca(sae(r),x);
}
}

Parada: Achou o
elemento ou o
elemento não se
encontra na
arvore.

Mais conteúdo relacionado

Mais procurados

O que é a ciência de dados (data science). Discussão do conceito
O que é a ciência de dados (data science). Discussão do conceitoO que é a ciência de dados (data science). Discussão do conceito
O que é a ciência de dados (data science). Discussão do conceitoLuis Borges Gouveia
 
Analise de Sensibilidade
Analise de SensibilidadeAnalise de Sensibilidade
Analise de SensibilidadeVivi Basilio
 
Conceitos essenciais de bases de dados
Conceitos essenciais de bases de dadosConceitos essenciais de bases de dados
Conceitos essenciais de bases de dadosPatrícia Morais
 
Python - Programação funcional
Python - Programação funcionalPython - Programação funcional
Python - Programação funcionalfabiocerqueira
 
Banco de Dados II: Conversão do Modelo Conceitual para o Modelo Lógico (aula 6)
Banco de Dados II: Conversão do Modelo Conceitual para o Modelo Lógico (aula 6)Banco de Dados II: Conversão do Modelo Conceitual para o Modelo Lógico (aula 6)
Banco de Dados II: Conversão do Modelo Conceitual para o Modelo Lógico (aula 6)Gustavo Zimmermann
 
Algoritmos e Programação: Matrizes
Algoritmos e Programação: MatrizesAlgoritmos e Programação: Matrizes
Algoritmos e Programação: MatrizesAlex Camargo
 
Banco de Dados II: Normalização de dados e as Formas Normais (aula 5)
Banco de Dados II: Normalização de dados e as Formas Normais (aula 5)Banco de Dados II: Normalização de dados e as Formas Normais (aula 5)
Banco de Dados II: Normalização de dados e as Formas Normais (aula 5)Gustavo Zimmermann
 
Pontos notáveis no triângulo
Pontos notáveis no triânguloPontos notáveis no triângulo
Pontos notáveis no triânguloELIZEU GODOY JR
 
Banco de dados exercícios resolvidos
Banco de dados exercícios resolvidosBanco de dados exercícios resolvidos
Banco de dados exercícios resolvidosGleydson Sousa
 
Matemática Discreta - Parte V relações
Matemática Discreta - Parte V relaçõesMatemática Discreta - Parte V relações
Matemática Discreta - Parte V relaçõesUlrich Schiel
 
Introdução a estruturas de dados em python
Introdução a estruturas de dados em pythonIntrodução a estruturas de dados em python
Introdução a estruturas de dados em pythonAlvaro Oliveira
 
Função exponencial exercícios resolvidos
Função exponencial   exercícios resolvidosFunção exponencial   exercícios resolvidos
Função exponencial exercícios resolvidosjorgehenriqueangelim
 

Mais procurados (20)

Lista Duplamente Encadeada
Lista Duplamente EncadeadaLista Duplamente Encadeada
Lista Duplamente Encadeada
 
O que é a ciência de dados (data science). Discussão do conceito
O que é a ciência de dados (data science). Discussão do conceitoO que é a ciência de dados (data science). Discussão do conceito
O que é a ciência de dados (data science). Discussão do conceito
 
Analise de Sensibilidade
Analise de SensibilidadeAnalise de Sensibilidade
Analise de Sensibilidade
 
Ordenação
OrdenaçãoOrdenação
Ordenação
 
Conceitos essenciais de bases de dados
Conceitos essenciais de bases de dadosConceitos essenciais de bases de dados
Conceitos essenciais de bases de dados
 
Python - Programação funcional
Python - Programação funcionalPython - Programação funcional
Python - Programação funcional
 
Banco de Dados II: Conversão do Modelo Conceitual para o Modelo Lógico (aula 6)
Banco de Dados II: Conversão do Modelo Conceitual para o Modelo Lógico (aula 6)Banco de Dados II: Conversão do Modelo Conceitual para o Modelo Lógico (aula 6)
Banco de Dados II: Conversão do Modelo Conceitual para o Modelo Lógico (aula 6)
 
Algoritmos e Programação: Matrizes
Algoritmos e Programação: MatrizesAlgoritmos e Programação: Matrizes
Algoritmos e Programação: Matrizes
 
Aula 4 banco de dados
Aula 4   banco de dados Aula 4   banco de dados
Aula 4 banco de dados
 
Banco de Dados II: Normalização de dados e as Formas Normais (aula 5)
Banco de Dados II: Normalização de dados e as Formas Normais (aula 5)Banco de Dados II: Normalização de dados e as Formas Normais (aula 5)
Banco de Dados II: Normalização de dados e as Formas Normais (aula 5)
 
Pontos notáveis no triângulo
Pontos notáveis no triânguloPontos notáveis no triângulo
Pontos notáveis no triângulo
 
Limites e derivadas
Limites e derivadasLimites e derivadas
Limites e derivadas
 
Determinantes 2º ano
Determinantes 2º anoDeterminantes 2º ano
Determinantes 2º ano
 
Aula sobre Tabela Hash
Aula sobre Tabela HashAula sobre Tabela Hash
Aula sobre Tabela Hash
 
Função Afim
Função AfimFunção Afim
Função Afim
 
Banco de dados exercícios resolvidos
Banco de dados exercícios resolvidosBanco de dados exercícios resolvidos
Banco de dados exercícios resolvidos
 
Matemática Discreta - Parte V relações
Matemática Discreta - Parte V relaçõesMatemática Discreta - Parte V relações
Matemática Discreta - Parte V relações
 
Grafos
GrafosGrafos
Grafos
 
Introdução a estruturas de dados em python
Introdução a estruturas de dados em pythonIntrodução a estruturas de dados em python
Introdução a estruturas de dados em python
 
Função exponencial exercícios resolvidos
Função exponencial   exercícios resolvidosFunção exponencial   exercícios resolvidos
Função exponencial exercícios resolvidos
 

Destaque

DBCells - an open and global multi-scale linked cells
DBCells - an open and global multi-scale linked cellsDBCells - an open and global multi-scale linked cells
DBCells - an open and global multi-scale linked cellsSérgio Souza Costa
 
RESUMO PIRATAS NO VALE DO SILICIO
RESUMO PIRATAS NO VALE DO SILICIORESUMO PIRATAS NO VALE DO SILICIO
RESUMO PIRATAS NO VALE DO SILICIOJo Gomes
 
17 arvores binarias de busca
17   arvores binarias de busca17   arvores binarias de busca
17 arvores binarias de buscaRicardo Bolanho
 
Operações em Árvores Binárias
Operações em Árvores BináriasOperações em Árvores Binárias
Operações em Árvores Bináriaselliando dias
 
Paradigma orientado a objetos - Caso de Estudo C++
Paradigma orientado a objetos - Caso de Estudo C++Paradigma orientado a objetos - Caso de Estudo C++
Paradigma orientado a objetos - Caso de Estudo C++Sérgio Souza Costa
 
Relações (composição e agregação)
Relações (composição e agregação)Relações (composição e agregação)
Relações (composição e agregação)Sérgio Souza Costa
 
Polymorphism (Ad-hoc and Universal)
Polymorphism (Ad-hoc and Universal)Polymorphism (Ad-hoc and Universal)
Polymorphism (Ad-hoc and Universal)Sérgio Souza Costa
 
Conceitos básicos de orientação a objetos
Conceitos básicos de orientação a objetosConceitos básicos de orientação a objetos
Conceitos básicos de orientação a objetosSérgio Souza Costa
 
Software Livre (Conceitos, contextualização histórica, licenças, sistemas ope...
Software Livre (Conceitos, contextualização histórica, licenças, sistemas ope...Software Livre (Conceitos, contextualização histórica, licenças, sistemas ope...
Software Livre (Conceitos, contextualização histórica, licenças, sistemas ope...Sérgio Souza Costa
 

Destaque (16)

DBCells - an open and global multi-scale linked cells
DBCells - an open and global multi-scale linked cellsDBCells - an open and global multi-scale linked cells
DBCells - an open and global multi-scale linked cells
 
RESUMO PIRATAS NO VALE DO SILICIO
RESUMO PIRATAS NO VALE DO SILICIORESUMO PIRATAS NO VALE DO SILICIO
RESUMO PIRATAS NO VALE DO SILICIO
 
Comandos e expressões
Comandos e expressõesComandos e expressões
Comandos e expressões
 
Funções e procedimentos
Funções e procedimentosFunções e procedimentos
Funções e procedimentos
 
17 arvores binarias de busca
17   arvores binarias de busca17   arvores binarias de busca
17 arvores binarias de busca
 
Operações em Árvores Binárias
Operações em Árvores BináriasOperações em Árvores Binárias
Operações em Árvores Binárias
 
Paradigma orientado a objetos - Caso de Estudo C++
Paradigma orientado a objetos - Caso de Estudo C++Paradigma orientado a objetos - Caso de Estudo C++
Paradigma orientado a objetos - Caso de Estudo C++
 
Google apps script - Parte - 1
Google apps script - Parte - 1Google apps script - Parte - 1
Google apps script - Parte - 1
 
Relações (composição e agregação)
Relações (composição e agregação)Relações (composição e agregação)
Relações (composição e agregação)
 
Herança e Encapsulamento
Herança e EncapsulamentoHerança e Encapsulamento
Herança e Encapsulamento
 
Google apps script - Parte 2
Google apps script - Parte 2Google apps script - Parte 2
Google apps script - Parte 2
 
Polymorphism (Ad-hoc and Universal)
Polymorphism (Ad-hoc and Universal)Polymorphism (Ad-hoc and Universal)
Polymorphism (Ad-hoc and Universal)
 
Conceitos básicos de orientação a objetos
Conceitos básicos de orientação a objetosConceitos básicos de orientação a objetos
Conceitos básicos de orientação a objetos
 
Software Livre (Conceitos, contextualização histórica, licenças, sistemas ope...
Software Livre (Conceitos, contextualização histórica, licenças, sistemas ope...Software Livre (Conceitos, contextualização histórica, licenças, sistemas ope...
Software Livre (Conceitos, contextualização histórica, licenças, sistemas ope...
 
Paradigmas de programação
Paradigmas de programaçãoParadigmas de programação
Paradigmas de programação
 
Tipos e valores
Tipos e valoresTipos e valores
Tipos e valores
 

Semelhante a Árvores: Conceitos e binárias

Semelhante a Árvores: Conceitos e binárias (11)

Aula 18
Aula 18Aula 18
Aula 18
 
Inf01203 arvbinarias
Inf01203 arvbinariasInf01203 arvbinarias
Inf01203 arvbinarias
 
Estrutura de dados em Java - Árvores Binárias
Estrutura de dados em Java - Árvores BináriasEstrutura de dados em Java - Árvores Binárias
Estrutura de dados em Java - Árvores Binárias
 
Aula 08 - árvores
Aula 08 - árvoresAula 08 - árvores
Aula 08 - árvores
 
Aula 08 - árvores
Aula 08 - árvoresAula 08 - árvores
Aula 08 - árvores
 
Aquece Para a prova de EDA3
Aquece Para a prova de EDA3Aquece Para a prova de EDA3
Aquece Para a prova de EDA3
 
Tema1 noções de matemática discreta pcs5701-2015-1 (1)
Tema1 noções de matemática discreta   pcs5701-2015-1 (1)Tema1 noções de matemática discreta   pcs5701-2015-1 (1)
Tema1 noções de matemática discreta pcs5701-2015-1 (1)
 
Pged 08
Pged 08Pged 08
Pged 08
 
Programando em python recursao
Programando em python   recursaoProgramando em python   recursao
Programando em python recursao
 
Arvores b
Arvores bArvores b
Arvores b
 
Recursividade
RecursividadeRecursividade
Recursividade
 

Mais de Sérgio Souza Costa

Expressões aritméticas, relacionais e lógicas
Expressões aritméticas, relacionais e lógicasExpressões aritméticas, relacionais e lógicas
Expressões aritméticas, relacionais e lógicasSérgio Souza Costa
 
De algoritmos à programas de computador
De algoritmos à programas de computadorDe algoritmos à programas de computador
De algoritmos à programas de computadorSérgio Souza Costa
 
Introdução ao pensamento computacional e aos algoritmos
Introdução ao pensamento computacional e aos algoritmosIntrodução ao pensamento computacional e aos algoritmos
Introdução ao pensamento computacional e aos algoritmosSérgio Souza Costa
 
Minicurso de introdução a banco de dados geográficos
Minicurso de introdução a banco de dados geográficosMinicurso de introdução a banco de dados geográficos
Minicurso de introdução a banco de dados geográficosSérgio Souza Costa
 
Banco de dados geográfico - Aula de Encerramento
Banco de dados geográfico - Aula de EncerramentoBanco de dados geográfico - Aula de Encerramento
Banco de dados geográfico - Aula de EncerramentoSérgio Souza Costa
 
Banco de dados geográficos – Arquiteturas, banco de dados e modelagem
Banco de dados geográficos – Arquiteturas, banco de dados e modelagemBanco de dados geográficos – Arquiteturas, banco de dados e modelagem
Banco de dados geográficos – Arquiteturas, banco de dados e modelagemSérgio Souza Costa
 
Banco de dados geográficos - Aula de abertura
Banco de dados geográficos - Aula de aberturaBanco de dados geográficos - Aula de abertura
Banco de dados geográficos - Aula de aberturaSérgio Souza Costa
 
Linguagem SQL e Extensões Espacias - Introdução
Linguagem SQL e Extensões Espacias - IntroduçãoLinguagem SQL e Extensões Espacias - Introdução
Linguagem SQL e Extensões Espacias - IntroduçãoSérgio Souza Costa
 
Gödel’s incompleteness theorems
Gödel’s incompleteness theoremsGödel’s incompleteness theorems
Gödel’s incompleteness theoremsSérgio Souza Costa
 
Explorando Games para o Ensino do Pensamento Computacional
Explorando Games para o Ensino do Pensamento ComputacionalExplorando Games para o Ensino do Pensamento Computacional
Explorando Games para o Ensino do Pensamento ComputacionalSérgio Souza Costa
 
Aula 1 - introdução a fundamentos de computação
Aula 1 - introdução a fundamentos de computaçãoAula 1 - introdução a fundamentos de computação
Aula 1 - introdução a fundamentos de computaçãoSérgio Souza Costa
 
From remote sensing to agent-based models
From remote sensing to agent-based modelsFrom remote sensing to agent-based models
From remote sensing to agent-based modelsSérgio Souza Costa
 

Mais de Sérgio Souza Costa (20)

Expressões aritméticas, relacionais e lógicas
Expressões aritméticas, relacionais e lógicasExpressões aritméticas, relacionais e lógicas
Expressões aritméticas, relacionais e lógicas
 
De algoritmos à programas de computador
De algoritmos à programas de computadorDe algoritmos à programas de computador
De algoritmos à programas de computador
 
Introdução ao pensamento computacional e aos algoritmos
Introdução ao pensamento computacional e aos algoritmosIntrodução ao pensamento computacional e aos algoritmos
Introdução ao pensamento computacional e aos algoritmos
 
Minicurso de introdução a banco de dados geográficos
Minicurso de introdução a banco de dados geográficosMinicurso de introdução a banco de dados geográficos
Minicurso de introdução a banco de dados geográficos
 
Modelagem de dados geográficos
Modelagem de dados geográficosModelagem de dados geográficos
Modelagem de dados geográficos
 
Banco de dados geográfico - Aula de Encerramento
Banco de dados geográfico - Aula de EncerramentoBanco de dados geográfico - Aula de Encerramento
Banco de dados geográfico - Aula de Encerramento
 
Banco de dados geográficos – Arquiteturas, banco de dados e modelagem
Banco de dados geográficos – Arquiteturas, banco de dados e modelagemBanco de dados geográficos – Arquiteturas, banco de dados e modelagem
Banco de dados geográficos – Arquiteturas, banco de dados e modelagem
 
Banco de dados geográficos - Aula de abertura
Banco de dados geográficos - Aula de aberturaBanco de dados geográficos - Aula de abertura
Banco de dados geográficos - Aula de abertura
 
Linguagem SQL e Extensões Espacias - Introdução
Linguagem SQL e Extensões Espacias - IntroduçãoLinguagem SQL e Extensões Espacias - Introdução
Linguagem SQL e Extensões Espacias - Introdução
 
Gödel’s incompleteness theorems
Gödel’s incompleteness theoremsGödel’s incompleteness theorems
Gödel’s incompleteness theorems
 
Turing e o problema da decisão
Turing e o problema da decisãoTuring e o problema da decisão
Turing e o problema da decisão
 
Abstract classes and interfaces
Abstract classes and interfacesAbstract classes and interfaces
Abstract classes and interfaces
 
Introdução ao Prolog
Introdução ao PrologIntrodução ao Prolog
Introdução ao Prolog
 
Heap - Python
Heap - PythonHeap - Python
Heap - Python
 
Paradigma lógico
Paradigma lógicoParadigma lógico
Paradigma lógico
 
Contextualizando o moodle
Contextualizando o moodleContextualizando o moodle
Contextualizando o moodle
 
Explorando Games para o Ensino do Pensamento Computacional
Explorando Games para o Ensino do Pensamento ComputacionalExplorando Games para o Ensino do Pensamento Computacional
Explorando Games para o Ensino do Pensamento Computacional
 
Software
SoftwareSoftware
Software
 
Aula 1 - introdução a fundamentos de computação
Aula 1 - introdução a fundamentos de computaçãoAula 1 - introdução a fundamentos de computação
Aula 1 - introdução a fundamentos de computação
 
From remote sensing to agent-based models
From remote sensing to agent-based modelsFrom remote sensing to agent-based models
From remote sensing to agent-based models
 

Árvores: Conceitos e binárias