Linguagem C - Árvores Binárias
Neste artigo, falarei sobre o que é e como implementar uma estrutura de dados chamada Árvore Binária. Com tempos de pesquisa, inserção e remoção expressivamente melhores que de listas encadeadas, esta estrutura é usada principalmente em bancos de dados e sistemas de arquivos.
[ Hits: 51.753 ]
Por: Enzo de Brito Ferber em 07/05/2015 | Blog: http://www.maximasonorizacao.com.br
/* @ Folha deletar (Folha raiz, int info) * * Argumentos * ---------- * raiz raiz principal da arvore * info informação procurada para deletar * * Retorno * ------- * raiz em ambos os casos (erro e sucesso) */ Folha deletar (Folha raiz, int info) { Folha filho, n_raiz; if (!raiz) return NULL; if (raiz->info == info) { if (raiz->direita) { n_raiz = filho = raiz->direita; while(filho->esquerda) filho = filho->esquerda; filho->esquerda = raiz->esquerda; free (raiz); return n_raiz; } else { n_raiz = raiz->esquerda; free (raiz); return n_raiz; } } else if (info > raiz->info) raiz->direita = deletar(raiz->direita, info); else raiz->esquerda = deletar(raiz->esquerda, info); return raiz; }
Folha deletar (Folha raiz, int info)
Folha filho, n_raiz; if (!raiz) return NULL;
if (raiz->info == info) { // (tratamento dos casos de remoção) } else if (info > raiz->info) raiz->direita = deletar(raiz->direita, info); else raiz->esquerda = deletar(raiz->esquerda, info); return raiz;
if (raiz->direita) { n_raiz = filho = raiz->direita; while(filho->esquerda) filho = filho->esquerda; filho->esquerda = raiz->esquerda; free (raiz); return n_raiz; } else { n_raiz = raiz->esquerda; free (raiz); return n_raiz; }
while(filho->esquerda) filho = filho->esquerda;
filho->esquerda = raiz->esquerda;
free (raiz); return n_raiz;
else { n_raiz = raiz->esquerda; free (raiz); return n_raiz; }
Linguagem C - Listas Duplamente Encadeadas
Linguagem C - Funções Variádicas
Dicas para aprender programação
Guia de Programação em C/GTK 2 - Construindo uma Calculadora Completa
Linguagem C - Listas Duplamente Encadeadas
Análise dos Métodos de Ordenação usados em Algoritmos Computacionais
Instalar e Configurar o Slackware Linux em 2025
Como configurar os repositórios do apt no Debian 12 em 2025
Passkeys: A Evolução da Autenticação Digital
Instalação de distro Linux em computadores, netbooks, etc, em rede com o Clonezilla
Configurando o Conky para iniciar corretamente no sistema
3 configurações básicas que podem melhorar muito a sua edição pelo editor nano
Como colorir os logs do terminal com ccze
Instalação Microsoft Edge no Linux Mint 22
Como configurar posicionamento e movimento de janelas no Lubuntu (Openbox) com atalhos de teclado
Ingress NGINX Controller CVSS base score of 9.8 (2)
Impossível corrigir problemas, você manteve (hold) pacotes quebrados. (2)
Linux Mint não conecta Wi-Fi sem fio (18)