Exemplo n.º 1
0
Arquivo: ex6.c Projeto: Limaa/aps1
void alteraLista(Lista *original, Lista *alterada)
{
	destroyLista(alterada);

	Fila letras;
	iniciaFila(&letras);

	Pilha numeros;
	iniciaPilha(&numeros);

	// analisa os elementos da lista original
	struct elementoLista *aux = original->inicio;
	while(aux != NULL)
	{
		if(isalpha(aux->info))
			enfileira(&letras, aux->info);
		else if(isdigit(aux->info))
			empilha(&numeros, aux->info);
		else
			printf("Invalid character (%c).\n", aux->info);
		
		aux = aux->next;
	}
	
	//adiciona os valores a lista alterada
	while(emptyFila(&letras) != 1)
		pushBackLista(alterada, desenfileira(&letras));
	while(sizePilha(&numeros) != 0)
		pushBackLista(alterada, desempilha(&numeros));
	
	destroyFila(&letras);
	destroyPilha(&numeros);
}
Exemplo n.º 2
0
Arquivo: main.c Projeto: glaydston/ed
// esvaziarDisciplina: remove todos os elementos da fila
void esvaziarDisciplina(tFila *f){
	tDisciplina disciplina;
	// retira da fila enquanto 
	// ela não retorna que está vazia
	while(!vazia(f)){
		desenfileira(f, &disciplina);		
		printf("\n\t\tDisciplina: %s removida!", disciplina.nome);	
	}
	if(vazia(f))
		printf("\n\n\t\t# Atencao: Lista Vazia! [ENTER]");
	else		
		printf("\n\n\t\t# Erro: Ao remover as disciplinas! [ENTER]");

	fflush(stdin);
	getchar();
}
Exemplo n.º 3
0
Arquivo: main.c Projeto: glaydston/ed
// excluiDisciplina: desenfileira o primeiro elemento da fila
void excluiDisciplina(tFila *f){
	int posicao, cont = 0, enc = 0;
	tDisciplina disciplina;

	if(vazia(f))		
		printf("\n\n\t\t# Erro: Cadastrar disciplinas! [ENTER]");
	else{
		cabecalho("Remover disciplina");	
		// remove a primeira disciplina da fila
		desenfileira(f, &disciplina);
		printf("\n\t\tDisciplina: %s removida! [ENTER]", disciplina.nome);	
	}

	fflush(stdin);
	getchar();
}
Exemplo n.º 4
0
//Funcao que simula o duelo entre os jogadores 1 e 2
void duelo(struct deck *jogador1, struct deck *jogador2, struct deck *aux, struct dados *dados)
{
	struct carta cartaaux, carta1, carta2;
	int jogadas=0;
	clock_t start, end;
	clock_t diff;

	start=clock();

	while(tamanho(jogador1)!=0 && tamanho(jogador2)!=0)
	{
		carta1 = desenfileira(jogador1);
		carta2 = desenfileira(jogador2);

		if(carta1.valor > carta2.valor){
			while(tamanho(aux)!=0){
				cartaaux = desenfileira(aux);
				enfileira(cartaaux.valor, cartaaux.naipe, jogador1);
			}
			
			enfileira(carta1.valor, carta1.naipe, jogador1);
			enfileira(carta2.valor, carta2.naipe, jogador1);

		}else if(carta1.valor < carta2.valor){
			while(tamanho(aux)!=0){
				cartaaux = desenfileira(aux);
				enfileira(cartaaux.valor, cartaaux.naipe, jogador2);
			}

			enfileira(carta1.valor, carta1.naipe, jogador2);
			enfileira(carta2.valor, carta2.naipe, jogador2);
		}else{
			if(tamanho(aux)!=0){
				carta1 = desenfileira(jogador1);
				carta2 = desenfileira(jogador2);
				enfileira(carta1.valor, carta1.naipe, aux);
				enfileira(carta2.valor, carta2.naipe, aux);
			}
			enfileira(carta1.valor, carta1.naipe, aux);
			enfileira(carta2.valor, carta2.naipe, aux);
		}
		jogadas++;
	}
	end=clock();
	diff = (end-start);
	printf("Foram feitas %d jogadas\n", jogadas);
	printf("A duracao foi de %lu milisegundos\n", diff);
	insereDados(diff, jogadas, dados);
}