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: 53.622 ]
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
Linguagem C - Listas Duplamente Encadeadas
Dicas para aprender programação
Gentoo binário em 2026: UEFI, LUKS, Btrfs e Systemd
Trabalhando Nativamente com Logs no Linux
Jogando Daikatana (Steam) com Patch 1.3 via Luxtorpeda no Linux
LazyDocker – Interface de Usuário em Tempo Real para o Docker
Por que sua empresa precisa de uma PKI (e como automatizar EMISSÕES de certificados via Web API)
Instalando NoMachine no Gentoo com Systemd (acesso Remoto em LAN)
Gentoo: Trocando wpa_supplicant pelo iwd no NetworkManager (Systemd)
OCS Inventory NG: Instalação de Agentes Linux e Windows + Autenticação HTTP
O Free Download Manager não abre no Fedora 43 KDE Plasma (2)
O que houve com slackware ??? (9)
Permissão acesso as pastas servidor Ubuntu Server 24.04 (5)









