Estrutura C
Por: Marcus Antonio Fernandes Alves • 22/11/2015 • Trabalho acadêmico • 809 Palavras (4 Páginas) • 200 Visualizações
#include <stdio.h>
#include <stdlib.h>
#include "estrutura.h"
#include "pilha.h"
#include "fila.h"
struct lista{
int senha;
struct lista *prox;
};
typedef struct lista Lista;
struct fila{
Lista *inicio;
Lista *final;
};
typedef struct fila Fila;
struct pilha{
Lista *topo;
};
typedef struct pilha Pilha;
Pilha *criarPilha();
Fila *criarFila();
int main(int argc, char *argv[])
{
int op, i=1;
Pilha *p;
Fila *f;
p=criarPilha();
f=criarFila();
do{
puts("Menu:");
puts("1-Gerar senha");
puts("2-Chamar senha");
puts("3-Mostrar painel da fila");
puts("4-Mostrar painel da pilha de senhas chamadas");
puts("5-Sair do sistema");
scanf("%d",&op);
switch(op){
case 1:
insert(f,i);
i++;
break;
case 2:
printSenha(f);
push(p,remover(f));
break;
case 3:
printFila(f);
break;
case 4:
printPilha(p);
break;
case 5:
exit(1);
break;
default:
puts("Opcao invalida.");
}
system("PAUSE");
system("cls");
}while(1);
return 0;
}
//cria uma pilha
Pilha *criarPilha(){
Pilha *p;
p=(Pilha *)malloc(sizeof(Pilha));
p->topo=NULL;
return p;
}
//coloca um novo valor na pilha
void push(Pilha *p, int x){
Lista *novo;
novo=(Lista *)malloc(sizeof(Lista));
novo->senha=x;
novo->prox=p->topo;
p->topo=novo;
}
//remove um valor da pilha
int pop(Pilha *p){
int x;
Lista *l;
if(p->topo==NULL){
puts("Pilha vazia.");
}else{
l=p->topo;
x=l->senha;
p->topo=l->prox;
free(l);
...