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: 50.373 ]
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 - Funções Variádicas
Linguagem C - Listas Duplamente Encadeadas
Guia de Programação em C/GTK 2 - Construindo uma Calculadora Completa
Análise dos Métodos de Ordenação usados em Algoritmos Computacionais
Dicas para aprender programação
Melhorando o tempo de boot do Fedora e outras distribuições
Como instalar as extensões Dash To Dock e Hide Top Bar no Gnome 45/46
E a guerra contra bots continua
Tradução do artigo do filósofo Gottfried Wilhelm Leibniz sobre o sistema binário
Conheça o firewall OpenGFW, uma implementação do (Great Firewall of China).
Instalando o FreeOffice no LMDE 6
Anki: Remover Tags de Estilo HTML de Todas as Cartas
Colocando uma opção de redimensionamento de imagem no menu de contexto do KDE
Debian Bookworm para a versão beta Debian 13 Trixie (0)
material de assembly x64 [RESOLVIDO] (5)
Terminal não funciona [RESOLVIDO] (9)
Problema com alias usando locate (6)
Como adicionar módulo de saúde da bateria dos notebooks Acer ao kernel... (20)
[Shell Script] Script para desinstalar pacotes desnecessários no OpenSuse
[Shell Script] Script para criar certificados de forma automatizada no OpenVpn
[Shell Script] Conversor de vídeo com opção de legenda
[C/C++] BRT - Bulk Renaming Tool
[Shell Script] Criação de Usuarios , Grupo e instalação do servidor de arquivos samba