Pilha
#include
#include
#define TRUE 1
struct data
{
int dia; int mes; int ano;
};
typedef struct data data;
struct aluno
{
int num; char nome[30]; data nasc; char sexo; data vest; struct aluno *prox;
};
typedef struct aluno aluno;
int tamanho; aluno *topo; aluno *fundo;
void Inicia_Pilha()
{
aluno *aux; aux = (aluno *)malloc(sizeof(aluno)); fundo = aux; fundo->prox = NULL; topo = fundo;
}
void Insert_Pilha()
{
system("cls"); aluno *aux; aux = (aluno *)malloc(sizeof(aluno)); aux->prox = topo; printf("Digite o numero de matricula do aluno: "); scanf("%d",&aux->num); fflush(stdin); printf("\nDigite o nome completo: "); gets(aux->nome); printf("\nDigite a data de nascimento no formato dd/mm/aaaa: "); scanf("%d/%d/%d",&aux->nasc.dia,&aux->nasc.mes,&aux->nasc.ano); fflush(stdin); while (TRUE) { printf("\nDigite o sexo (m para masculino e f para feminino): "); scanf("%c",&aux->sexo); if (aux->sexo == 'm' || aux->sexo == 'f') break; } printf("\nDigite a data do vestibular (formato dd/mm/aaaa): "); scanf("%d/%d/%d",&aux->vest.dia,&aux->vest.mes,&aux->vest.ano); topo=aux; tamanho++; printf("\n\n"); system("PAUSE");
}
void Busca_Pilha()
{
system("cls"); int flag = 0, tam = tamanho, val; aluno *aux; aux = topo; fflush(stdin); printf("Digite o numero de matricula a ser pesquisado: "); scanf("%d",&val); while (aux != NULL) { if (aux->num == val) { printf("\nAluno encontrado.\n\n"); printf("Matricula: %d\nNome: %s",aux->num,aux->nome); printf("\nData de nascimento: %d/%d/%d",aux->nasc.dia,aux->nasc.mes,aux->nasc.ano); if (aux->sexo == 'm') printf("\nSexo: Masculino"); else