jett 1 Posted April 5, 2013 Report Share Posted April 5, 2013 (edited) 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 April 5, 2013 by thoga31 GeSHi Link to post Share on other sites
HappyHippyHippo 1,162 Posted April 5, 2013 Report Share Posted April 5, 2013 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 Portugol Plus Link to post Share on other sites
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now