Jump to content
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

jett

Permutação

Recommended Posts

jett

Pessoal, segue abaixo um código em que eu armazeno em lista crescente uma caixa de cores com certo número de bolinhas, e cada bolinha possui uma letra. Quero fazer fazer uma função com as possíveis permutações de todas as caixas: Suponha que tenho 2 caixas: a primeira com 1 bolas A e a segunda com 2 bolas B e C. Então o resultado seria:

A, B, C

A, C, B

Mas devo implementar a busca em profundidade de forma recursiva para gerar todas as possibilidades de resultado para o jogo. Vocês poderiam me dar uma ideia?

Abaixo o código de inserção:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

typedef struct cor{
int quantidade;
char nomecor[20];
char letra [26];
struct cor *prox;
}cor;

cor *preenche(){
int cont;
cor *nova=(cor*)malloc(sizeof(cor));
printf("Qual o nome da cor: ");
fflush(stdin);
fgets(nova->nomecor, 20, stdin);
printf("Quantidade de bolas desta cor: ");
scanf("%d", &(nova->quantidade));
for(cont=0; cont<nova->quantidade; cont++){
printf("Digite uma letra: ");
fflush(stdin);
scanf("%c", &nova->letra[cont]);
}
nova->prox=NULL;
return nova;
}
cor *inserir(cor *C)//C é a lista de caixas
{
cor *nova=preenche();
if(C==NULL)
{
return nova;
}else
{
if(C->quantidade > nova ->quantidade)
{
nova->prox=C;
return nova;
}
else{

cor *ant,*aux;
aux=C;
ant=aux;

while( aux!=NULL)
{
if(aux->quantidade > nova ->quantidade)
{
break;
}
ant=aux;
aux=aux->prox;
}
ant->prox=nova;
nova->prox=aux;

return C;
}

}

}

Edited by thoga31
GeSHi

Share this post


Link to post
Share on other sites
HappyHippyHippo

se é para fazer o que pretendes : ter as bolas separadas por caixas, terás de refazer muito código ...

necessitas de várias listas, uma para cada caixa. depois calcular as permutações de cada caixa e no fim fazer a combinação de todas as permutações das caixas.

ps : não sei onde tiraste a ideia de fazer fflush(stdin) ... não seria fflush(stdout) ?


IRC : sim, é algo que ainda existe >> #p@p

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.