sliver Postado Maio 20, 2007 Denunciar Share Postado Maio 20, 2007 Olá pessoal, sou novo no fórum, este é o meu primeiro post!Eu preciso fazer um algoritmo para gerar um número aleatório entre 1 e 20,verificar se ele já existe em uma árvore binária dada pelo "arvore raiz"//verifica se a chave inteira a ser inserida já existebool verificaIgual (arvore raiz, int x) { if (raiz) { if (raiz->chave == x) return(true); verificaIgual(raiz->esq, x); verificaIgual(raiz->dir, x); return(false); }}//gera um número aleatório entre 1 e 20int gerarNumero(arvore raiz) { srand((unsigned) time(NULL)); int x = (rand() % 20); // se a chave criada já existir, cria outra chave if (verificaIgual(raiz,x)) gerarNumero(raiz); else return x;}E o algoritmo não funciona! Alguém pode me ajudar?Obs.: É árvore binária normal, não é de busca binária. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest Rafael Barros Postado Maio 23, 2007 Denunciar Share Postado Maio 23, 2007 rapaz, que tipo de erro tá dando??? um erro que eu vi foi que isso pode está gerando um loop infinito pow ele pode sempre gerar o mesmo numero ai vai ficar preso na recursão.colocar aqui o tipo de erro que eu tento te ajudar. Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
sliver
Olá pessoal, sou novo no fórum, este é o meu primeiro post!
Eu preciso fazer um algoritmo para gerar um número aleatório entre 1 e 20,
verificar se ele já existe em uma árvore binária dada pelo "arvore raiz"
//verifica se a chave inteira a ser inserida já existe
bool verificaIgual (arvore raiz, int x) {
if (raiz) {
if (raiz->chave == x) return(true);
verificaIgual(raiz->esq, x);
verificaIgual(raiz->dir, x);
return(false);
}
}
//gera um número aleatório entre 1 e 20
int gerarNumero(arvore raiz) {
srand((unsigned) time(NULL));
int x = (rand() % 20);
// se a chave criada já existir, cria outra chave
if (verificaIgual(raiz,x)) gerarNumero(raiz);
else return x;
}
E o algoritmo não funciona! Alguém pode me ajudar?
Obs.: É árvore binária normal, não é de busca binária.
Link para o comentário
Compartilhar em outros sites
1 resposta a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.