Escolar Documentos
Profissional Documentos
Cultura Documentos
Exemplo:
#include "arvore_binaria_busca.h"
#include <stdlib.h>
#include <stdio.h>
#include <math.h> Arquivo: arvore_binaria_busca.c
struct arvore{
Funcionario dados;
struct arvore *esq;
struct arvore *dir;
};
typedef struct arvore No; /* usado quando se referir a um nó da árvore*/
Arvore *raiz=(Arvore*)malloc(sizeof(Arvore));
raiz->dados = f;
raiz->dir = NULL;
raiz->esq = NULL;
return raiz;
}
int main(void)
{
setlocale(LC_ALL, "Portuguese");
switch(opcao){
case 1:
printf("Entre com a matrícula do funcionário: "); scanf("%d",&f.matricula);
printf("Entre o nome do funcionário: "); scanf("%s", f.nome);
printf("Entre o salário do funcionário: "); scanf("%f", &f.salario);
if(raiz==NULL)
raiz = arvore_cria(f);
else{
arvore_inserir(raiz, f);
}
Break;
.
.
.
Prof. Lincoln Faria - lfaria@unicarioca.edu.br 14
Implementação: inserção
Exemplo:
50 60 30 40 70 20
Exemplo:
50 60 30 40 70 20
Nó Raiz
50
Exemplo:
50 60 30 40 70 20
Nó Raiz
60>50=SIM
50
A direita
60
Exemplo:
50 60 30 40 70 20
Nó Raiz
30>50=Não
50 A esquerda
30 60
Exemplo:
50 60 30 40 70 20
Nó Raiz
40>50=Não
50 40>30=Sim
A direita
30 60
40
Exemplo:
50 60 30 40 70 20
Nó Raiz
50
70>50=Sim
30 60
70>60=Sim
A direita
40 70
Exemplo:
50 60 30 40 70 20
Nó Raiz
20>50=Não
50 20>30=Não
A esquerda
30 60
20 40 70
return 1; /*verdadeiro*/
}
Prof. Lincoln Faria - lfaria@unicarioca.edu.br 23
Implementação: inserção
#include <stdio.h>
#include <locale.h>
Arquivo: main.c
#include "arvore_binaria_busca.h"
int main(void)
{
setlocale(LC_ALL, "Portuguese");
Arquivo: arvore_binaria_busca.c
. Arquivo: main.c
.
.
case 3:
printf("Entre com a matrícula a ser buscada: ");
int matricula;
scanf("%d",&matricula);
arvore_busca(raiz,matricula);
break;
.
.
.
➢Remover um nó folha
➢Remover um nó com 1 filho
➢Remover um nó com 2 filhos
Remover um nó folha
20 20
15 25 15 25
10 18 40 10 18 40
13
NULL
20 20
15 25 15
10 18 40 10 18 40
13 13
15 25 15 25
10 18 40 10 40
13 13
20 – 15 – 25 – 10 – 18 – 13 – 40
Resposta: 20
15 25
10 18 40
13
Percurso em pré-ordem:
20 – 15 – 10 – 13 – 18 – 25 – 40
Considerações finais