示例#1
0
文件: ex6.c 项目: 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);
}
示例#2
0
void imprimePilha(Pilha *pilha){
	Pilha *aux;
	int aux2;
	aux=criaPilha(sizePilha(pilha)); // tamanho atual da pilha
	while (!emptyPilha(pilha)){
			popPilha(pilha,&aux2);
			pushPilha(aux,aux2);
	}
	while (!emptyPilha(aux)){
			popPilha(aux,&aux2);
			pushPilha(pilha,aux2);
			printf("%3d", aux2);
	}
	printf("\n");
}