
Enviado em 23/04/2022 - 18:38h
Olá, estou tentando fazer um algoritmo simples de árvore binária em C, mas a função para deletar um nó simplesmente não faz efeito algum.void delNode(Node *root)
{
Node *leaf, **nroot;
int found = 0, target;
printf("\nNode to be removed: ");
scanf("%d", &target);
printf("\n");
while (root != NULL){
if (root->code == target){
nroot = &root;
found = 1;
break;
}
if (target < root->code) root = root->left;
else root = root->right;
}
if (!found){
printf("Node not found.");
return;
}
if ((*nroot)->left == NULL && (*nroot)->right == NULL) *nroot = NULL;
else if ((*nroot)->left != NULL) *nroot = (*nroot)->left;
else if ((*nroot)->right != NULL) *nroot = (*nroot)->right;
else {
leaf = findClosest(*nroot);
*nroot = leaf;
leaf = NULL;
free(leaf);
}
if (*nroot == NULL) free(*nroot);
return;
}
int main()
{
Node *root = NULL;
for (int i=0; i<10; i++){
if (root == NULL) root = insNode(root, createNode());
else insNode(root, createNode());
}
printf("\n");
prntTree(root);
printf("\n");
delNode(root);
prntTree(root);
return 0;
}
Monitorando o Preço do Bitcoin ou sua Cripto Favorita em Tempo Real com um Widget Flutuante
IA Turbina o Desktop Linux enquanto distros renovam forças
Como extrair chaves TOTP 2FA a partir de QRCODE (Google Authenticator)
Como realizar um ataque de força bruta para desobrir senhas?
Como usar Gpaste no ambiente Cinnamon
Atualizando o Fedora 42 para 43
ERRO: LAZARUS 4.2 64 no Linux MINT não entra mais apos ajustar desktop... (0)
Pergunta: Meu teclado não está respondendo direito como e consertar? (2)
Secure boot, artigo interessante, nada técnico. (6)
SQLITE não quer funcionar no LINUX LMDE6 64 com Lazaruz 4.2 64bit (n... (0)









