6
Vanessa Souza Universidade Federal de Itajubá Instituto de Matemática e Computação Algoritmo e Estrutura de Dados II COM-112 Aula 10

AULA_10_AVL

Embed Size (px)

DESCRIPTION

avl

Citation preview

Page 1: AULA_10_AVL

Vanessa Souza

Universidade Federal de Itajubá – Instituto de Matemática e Computação

Algoritmo e Estrutura de Dados II

COM-112

Aula 10

Page 2: AULA_10_AVL

Remoção - Implementação

É preciso implementar as funções: void atualizaBalRemocao(arvore *no, int num);

void balanceamentoRemocao(arvore *no);

É preciso chamar a função atualizaBalRemocao nas funções removeFolha e removeUmFilho

Page 3: AULA_10_AVL

Remoção - Implementação

void atualizaBalRemocao(arvore *no, int num); Função recursiva que atualiza o FB dos nós da árvore após

uma remoção

Possui 2 critérios de parada Chegou à raiz da árvore

Após o balanceamento encontrou um nó cujo FB seja igual a 1 ou -1

Chama a função balanceamentoRemocao no caso de a árvore ter sofrido desbalanceamento com a remoção

Page 4: AULA_10_AVL

Remoção - Implementação

void balanceamentoRemocao(arvore *no) Função que chama as rotações corretas para rebalancear a

árvore

No caso da remoção, o FB precisa ser ajustado tanto na rotação simples como na dupla

Page 5: AULA_10_AVL

Remoção - Implementação

Exemplo Insira os números abaixo numa árvore AVL

45, 23, 69, 22, 58, 36, 97, 18, 52, 88, 99, 76, 105, 20

Posteriormente remova os números 45 e 58

Page 6: AULA_10_AVL

Remoção - Implementação

void balanceamentoRemocao(arvore *no)