sistemas
#include
#include
#include
#include
#include
#include
/*Definir a nossa estrutura de Pilha*/
typedef struct registro { int Codigo; char Placa[9]; char Motorista[21]; struct registro *prox;
} pilhatipo;
/*VARIÁVEIS GLOBAIS*/ int codigo; char placa[9] = ""; char motorista[21] = ""; pilhatipo *p1, *p2, *pinicio;//ponteiro para o topo da pilha
/*Inicialização da pilha*/
void InicializaPilha(pilhatipo **epilha){ /*Responsavel por iniciar a Pilha*/ *epilha = NULL;
}
/*Inicia a pilha vazia*/ int PilhaVazia (pilhatipo *pilha) { return (pilha == NULL);
}
/*Topo da pilha*/
void TopoPilha (pilhatipo *pilha){ codigo = pilha->Codigo; strcpy(placa, pilha->Placa); strcpy(motorista, pilha->Motorista);
}
/*FUNÇÃO AUXILIAR PARA LER DADOS (ENTRADA)*/
void dados_frota()
{
system("cls"); printf ("\nEntre com o codigo da frota: "); fflush (stdin); scanf ("%d", &codigo); printf ("\nEntre com a placa do veiculo: "); fflush (stdin); fgets (placa, 9, stdin); printf ("\nEntre com o nome do Motorista: "); fflush (stdin); fgets (motorista, 21, stdin);
}
/*FUNÇÃO INSERIR - lembrar de colocar pincipio para receber o inicio da pilha*/
void InserePilha(pilhatipo **epilha)
{
dados_frota(); /*chamando a função*/ if (PilhaVazia) { pinicio = p1; pilhatipo *p1=(pilhatipo*)malloc(sizeof(pilhatipo));//alocando memoria para os novos elementos p1->Codigo = codigo; strcpy(p1->Placa,placa); strcpy(p1->Motorista,motorista); p1->prox = *epilha; *epilha = p1; }else{ printf("Pilha contém estrutura de itens. "); }
}
void InserePilha2(pilhatipo **epilha)
{
pilhatipo *p1; p1 = (pilhatipo*) malloc (sizeof(pilhatipo)); p1->Codigo = codigo; strcpy(p1->Placa,placa); strcpy(p1->Motorista,motorista); p1->prox = *epilha; *epilha = p1;
}
void