Академический Документы
Профессиональный Документы
Культура Документы
Resumo
Introduo a rvores
Andr Pimenta Freire
Objetivos da aula
O que so rvores?
A representao
esquemtica
de
rvores
usualmente coloca a raiz no topo, com a rvore
crescendo para baixo.
05/06/2013
N ancestral
A n ancestral de H
A n pai de D
N descendente
E n descendente de A
D n filho de A
Uma caracterstica
inerente a rvores que
qualquer n, exceto a
raiz, tem um nico n
pai.
N folha tambm
chamado de n externo
da rvore.
Os demais ns so ns
internos da rvore.
Grau de um n
Grau da rvore
o nmero de ns filhos
que o mesmo possui
igual ao grau do n de
maior grau da rvore.
Obviamente que um n
folha tem grau zero.
B possui
grau 2
05/06/2013
Nvel de um n
Altura de um n
o nmero de ns
existentes no
caminho entre a raiz
e o prprio n.
o comprimento do
caminho mais longo deste
n at um n folha.
rvores Binrias
C
D
rvore binria
rvore binria
rvore n-ria
rvore n-ria
05/06/2013
A
B
B
E
C
F
rvore binria
rvore binria
rvore n-ria
rvore n-ria
C
F
C
F
G
rvore binria
rvore binria
rvore n-ria
rvore n-ria
B
E
B
E
C
F
C
F
D
L
D
G
H
rvore binria
rvore n-ria
rvore n-ria
rvore binria
05/06/2013
C
F
H
rvore n-ria
H
I
rvore n-ria
rvore binria
rvore binria
B
E
C
F
G
H
I
M
rvore n-ria
rvore binria
J
N
05/06/2013
Pesquisa de um elemento na
rvore
Pesquisa de um elemento na
rvore
10
3
1
14
Pesquisa de um elemento na
rvore
13
+ 9
10
14
5
4
7
3
13
7
10
3
1
5
4
14
13
10
3
1
14
5
4
13
05/06/2013
10
14
5
4
3. O elemento a remover
possuir subrvore direita e
esquerda;
10
14
13
13
1.
1.
O elemento
subrvores;
14
5
6
no
possuir
O elemento
subrvores;
13
remover
no
possuir
10
remover
Procedimento
7
3
10
3
1
14
5
4
10
14
13
13
Procedimento
7
10
3
1
14
5
4
13
7
10
3
1
14
5
4
13
14
13
5
4
05/06/2013
Procedimento
Elemento a
ser removido
14
1
Maior
elemento
10
10
13
14
5
4
13
Procedimento
7
10
1
1
14
5
4
13
7
10
3
1
14
5
4
13
10
3
1
14
5
4
Menor
elemento
13
13
Procedimento
14
10
Procedimento
7
10
4
1
14
5
4
13
05/06/2013
Algoritmos para
rvores Binrias de Busca
7
10
3
1
14
5
4
10
4
1
13
14
5
6
13
Inicializa
Pesquisa
Insere
Exclui.
05/06/2013
Operaes: Insere
Operaes: Remover
Int remover(Apontador *p, Registro x) {
Apontador aux;
if (*p==NULL)
return 0; //no achou e no removeu
else if (x.Chave < (*p)->Reg.Chave)
return(remover(&(*p)->esq, x));
else if (x.Chave > (*p)->Reg.chave)
return(remover(&(*p)->dir, x));
else { //remover
//caso 1: o n no tem filhos
if (((*p)->esq == NULL) && ((*p)->dir == NULL)) {
free(*p);
*p = NULL; //anula subrvore de onde veio
return 1;
}
Operaes: Excluir
//caso 2a: s h o filho direito
else if ((*p)->esq==NULL) {
aux=*p;
*p=(*p)->dir; //faz ligao com filho a direita
free(aux);
return 1;
}
//caso 2b: s h o filho esquerdo
else if ((*p)->dir == NULL) {
aux = *p;
*p = (*p)->esq; //faz ligao com filho a esquerda
free(aux);
return 1;
}
Operaes: Excluir
//caso 3: h os dois filhos
else { //substitui pelo maior da subrvore esquerda
(*p)->Reg.chave= busca_maior((*p)->esq);
return(remover(&(*p)->esq, (*p)->Reg));
}
}
}
Registro busca_maior(Apontador p) {
while (p->dir != NULL)
p = p->dir;
return (p->Reg);
}
Objetivos da aula
Ao final desta aula, espera-se que os alunos sejam
capazes de
Explicar os principais conceitos e propriedades de rvores
n-rias, rvores binrias e rvores binrias de pesquisa
Explicar o funcionamento de procedimentos para busca,
insero e remoo de elementos em rvores binrias de
pesquisa
Implementar algoritmos em linguagem de programao
para efetuar operaes de busca, insero e remoo em
rvores
Referncias Utilizadas
Livro:
ZIVIANI, Nivio, Projeto de algoritmos com
implementao em Pascal e C, 3a. edio,
Editora Thomson, 2011
Baseado nos slides da Profa. Lvia Naiara de
Andrade e da Profa. Sandra Aluisio (ICMC-USP)
10