Você está na página 1de 17

ALGORITMOS E ESTRUTURA DE DADOS I

ÁRVORES BINÁRIAS – PARTE II - IMPLEMENTAÇÃO


INTRODUÇÃO

 A árvore cujos valores da subárvore a esquerda


são menores do que o pai e os valores da
subárvore a direita são maiores é chamada de
árvore binária de busca
 Vantagens
 Fácil de adicionar elementos
 Busca mais rápida do que vetores e listas
 Pode ser utilizada para avaliação de expressões

 Desvantagem
 Dependem da ordem de inserção
ESTRUTURAS NECESSÁRIAS

ArvoreBinaria.c ArvoreBinaria.h
ÁRVORES DINÂMICAS

 ArvoreBinaria.c
 criar_arvore()
ÁRVORES DINÂMICAS

 ArvoreBinaria.c
 liberar_arvore()
ÁRVORES DINÂMICAS

 ArvoreBinaria.c
 total_nos()
ÁRVORES DINÂMICAS

 ArvoreBinaria.c
 altura_arvore()
ÁRVORES DINÂMICAS

 ArvoreBinaria.c
 preOrdem()
ÁRVORES DINÂMICAS

 ArvoreBinaria.c
 emOrdem()
ÁRVORES DINÂMICAS

 ArvoreBinaria.c
 posOrdem()
ÁRVORES DINÂMICAS

 ArvoreBinaria.c
 inserir_arvore()
ÁRVORES DINÂMICAS

 ArvoreBinaria.c
 remover_arvore()
 Três casos
 O nó é folha
 O nó não tem filho a esquerda
 O nó possui dois filhos
REMOVER_ARVORE()

 O nó é uma folha
REMOVER_ARVORE()

 O nó não tem filho a esquerda


REMOVER_ARVORE()

 O nó tem ambos os filhos


REMOVER_ARVORE()
EXERCÍCIOS

 Implementar uma função que consulte a árvore

 Escreva uma função que conte a quantidade de nós folhas em uma árvore

 Implemente uma função que receba uma lista e a devolva uma árvore binária

 Modifique o código de árvores para armazenar os dados de estudantes como mostrado nas aulas anteriores.
Cada nó deve ser inserido tendo como base o número da matrícula
 Implemente uma função recursiva para remover um nó que não dependa da função remover_atual()

Você também pode gostar