baralho + fila

Run Settings
LanguageC
Language Version
Run Command
/* Em um determinado jogo de cartas, cada jogador deve retirar 5 cartas do monte e segurá-las em suas mãos. Contudo, a ordem de descarte deve ser a mesma ordem em que as cartas foram retiradas do monte. Considerando a imagem exemplificativa acima, implemente um algoritmo, utilizando estruturas de dados dinâmicas, capaz de representar a situação exposta: as cartas, inicialmente presentes no monte, devem ser armazenadas nas mãos do usuário e, em seguida, descartadas (seguindo as regras anteriormente mencionadas). */ /* grupo: Allan Cherre, Luis Henrique, Rodrigo Gonçalves */ #include <stdio.h> #include <stdlib.h> // estrutura do baralho typedef struct stru { int carta; char nipe; struct stru *prox; } baralho; // ponteiros baralho *p, *q=NULL, *top=NULL; // coloca informações na pilha void push(int val, char nipe) { p = (baralho *) malloc(sizeof(baralho)); p->carta = val; p->nipe = nipe; p->prox = q; top = p; q = p; } // remove valores da pilha, envia para uma fila e liberar esse valor void popn() { p = top; top = p->prox; printf("%d %c descartado\n", p->carta, p->nipe); free(p); } void main() { int n, tam=4; char nipe; // recebe valores for(int i=0; i<5; i++) { scanf("%d %c", &n, &nipe); printf("carta retirada %d %c\n", n, nipe); push(n, nipe); } printf("\n"); int lista[tam], i=0; // monta um vetor for(;i<=tam;i++) popn(); printf("cartas descartadas\n"); // libera os ponteiros free(top); }
Editor Settings
Theme
Key bindings
Full width
Lines