Bom pessoal, estou fazendo um trabalho de AEDS para a faculdade e corria tudo aos trancos e barrancos quando tudo desmoronou.....
Estava usando as filas normalmente, só que em determinado momento preciso tirar de uma fila e passar para uma pilha, mas simplesmente não consigo. Todas as modificações que imaginei eu fiz e, quando não dava fatal error, dava pilha vazia.
Não sei se mostrando os dois vai ser o suficiente, mas vou postar os envolvidos na história: CriaPilha(); Empilha(); ImprimePilha(); DesceAviao();
Por favor galera, dá uma forcinha ai....
Estava usando as filas normalmente, só que em determinado momento preciso tirar de uma fila e passar para uma pilha, mas simplesmente não consigo. Todas as modificações que imaginei eu fiz e, quando não dava fatal error, dava pilha vazia.
Não sei se mostrando os dois vai ser o suficiente, mas vou postar os envolvidos na história: CriaPilha(); Empilha(); ImprimePilha(); DesceAviao();
Por favor galera, dá uma forcinha ai....
Código:
typedef struct NODO { struct REG dado; struct NODO *proximo; }PILHA; PILHA *CriaPilha() { return NULL; } PILHA *Empilha(PILHA *topo, struct REG &elemento) { struct NODO *p; p = (struct NODO * )malloc(sizeof(struct NODO)); p->dado = elemento; p->proximo = topo; return p; // p é o novo topo } void ImprimePilha(PILHA *p) { PILHA *f; f=CriaPilha(); int i; f=p; if (PilhaVazia(f)) cout <<"A pilha de Avioes Aterrissados esta vazia..."; else for (i=1;!PilhaVazia(f);f=f->proximo) { cout <<i <<" - " <<f->dado.voo <<" - " <<f->dado.origem <<" - " <<f->dado.destino <<" - " <<"COMB: " <<f->dado.comb <<"\n"; i++; } } int DesceAviao(FILA *v, PILHA *d) { struct NODO *aviao; if(FilaVazia(v)) cout <<"\nA fila de Avioes em Voo esta vazia..."; else { Desenfileira(v, aviao->dado); Empilha(d, aviao->dado); cout <<"Aviao: " <<aviao->dado.voo <<" - " <<aviao->dado.origem <<" - " <<aviao->dado.destino <<" - Aterrissado...\n" <<"Imprimindo a pilha atual de Avioes Aterrissados:\n\n"; ImprimePilha(d); } }
Comment