Arvore Binária de busca
#include
#include
/*
=================================== ARVORE BINARIA DE BUSCA
===================================
*/
//REMOVE NAO FUNCIONA
typedef struct{ int codigo;//Codigo de pessoa //Chave Primaria char nome[40]; char telRes[13]; //(__)____-____ char telCel[13]; //(__)____-____
}Tipo_Pessoa;
typedef struct nd{ Tipo_Pessoa pessoas; struct nd *ESQUERDA, *DIREITA;
}NODO;
typedef NODO *Arvore_Binaria_Busca;
/*
===========FUNCOES==========
Criar Arvore Vazia
Ler individuo
Inserir individuo Na Arvore
Consultar individuo
Exibir individuo InOrdem
Exibir individuo PosOrdem
Exibir individuo PreOrdem
Remove individuo
Sucessor Esquerdo
===========FUNCOES==========
*/
void Criar_Arvore_Vazia(Arvore_Binaria_Busca *arvore){ *arvore=NULL;
}
void Inserir_Elemento_Arvore(Arvore_Binaria_Busca *arvore, Tipo_Pessoa pessoa){ if((*arvore)==NULL){ (*arvore)=(NODO *)malloc(sizeof(NODO)); (*arvore)->ESQUERDA=NULL; (*arvore)->DIREITA=NULL; (*arvore)->pessoas=pessoa; printf("PESSOA INSERIDA COM SUCESSO!\n"); }else if(pessoa.codigopessoas.codigo){ Inserir_Elemento_Arvore(&(*arvore)->ESQUERDA,pessoa); }else if(pessoa.codigo>(*arvore)->pessoas.codigo){ Inserir_Elemento_Arvore(&(*arvore)->DIREITA,pessoa); }else{ printf("JA EXISTE UMA PESSOA COM ESTE CODIGO! %d \n",pessoa.codigo); }
}
Tipo_Pessoa Sucessor_Esquerdo(Arvore_Binaria_Busca *arvore){
Arvore_Binaria_Busca auxiliar; Tipo_Pessoa pessoa; auxiliar=(*arvore);
while(auxiliar->DIREITA != NULL){ auxiliar = auxiliar->DIREITA; } pessoa = auxiliar->pessoas; return (pessoa);
}
void Remover_Elemento(Arvore_Binaria_Busca *arvore, Tipo_Pessoa *pessoa){
Arvore_Binaria_Busca auxiliar_arvore; Tipo_Pessoa auxiliar_pessoa;
if((*arvore) == NULL){ printf("ELEMENTO NAO ENCONTRADO!\n");