Boa noite, o problema que tinha antes foi resolvido, agora criou outro kkkk.
Preciso da ajuda de vocês, como faço para encontrar os múltiplos de um número com recursividade que estão inseridos na árvore.
O enunciado é esse:
''Considerando o mesmo programa que você desenvolveu em sala de aula, baseado em árvore binária, desenvolva agora uma nova funcionalidade que solicita ao usuário um número, e o programa apresenta se esse número (e todos os seus múltiplos) estão na árvore.''
Meu código está assim:
struct trabalhop
{
int numero;
struct trabalhop* dir;
struct trabalhop* esq;
};
typedef struct trabalhop tree;
tree* cria_arvore_vazia()
{
return NULL;
}
tree* criar_arvore(int numero, tree* dir, tree* esq)
{
tree* arvore = (tree*) malloc(sizeof(tree));
arvore->numero = numero;
arvore->dir = dir;
arvore->esq = esq;
return arvore;
}
tree* inserir(tree* arvore, int numero)
{
if(arvore==NULL)
{
arvore= criar_arvore(numero, NULL, NULL);
}else if (numero < arvore->numero)
{
arvore->esq = inserir(arvore->esq, numero);
}else
{
arvore->dir = inserir(arvore->dir, numero);
}
return arvore;
}
tree* buscar(tree* arvore, int numero)
{
if(arvore == NULL)
{
return NULL;
}
if(numero == arvore->numero)
{
return arvore;
}
if(numero > arvore->numero)
{
return buscar(arvore->dir, numero);
}else
{
return buscar(arvore->esq, numero);
}
}
int main()
{
int n, opcao;
tree *arvore = cria_arvore_vazia();
tree *arvore_busca;
do {
printf("BEM VINDO AO MENU\n");
printf("\nESCOLHA UMA DAS opções:\n");
printf("\n1 - INSERIR");
printf("\n2 - BUSCAR POR NUMERO E SEUS MULTIPLOS.");
printf("\n3 - BUSCAR NOS 'RAIZ' ");
printf("\n4 - SAIR\n");
scanf("%i",&opcao);
system("cls");
switch(opcao){
case 1:
{
printf("Insira um numero inteiro: ");
scanf ("%i",&n);
arvore = inserir(arvore, n);
system("cls");
break;
}
case 2:
{
printf("Informe o numero que deseja buscar: ");
scanf("%i", &n);
arvore_busca = buscar(arvore, n);
printf("\nNumero: %i\n", arvore_busca->numero);
break;
}
case 3:
{
}
case 4:
{
printf("Volte sempre!!\n");
exit(0);
break;
}
default:
{
printf("Opcao invalida!!\n");
printf("Por favor digite uma opcao valida\n");
break;
}
}
}while(opcao != 4);
return 0;
system("pause");
}