Estrutura de dados - pilha

Disponível somente no TrabalhosFeitos
  • Páginas : 3 (708 palavras )
  • Download(s) : 0
  • Publicado : 27 de fevereiro de 2013
Ler documento completo
Amostra do texto
1) Escreva um programa em C que implemente uma pilha estática para armazenar um cadastro de alunos. Os dados dos alunos são: RA, nome, nota 1, nota 2 e média.
A média ((nota 1 + nota 2) / 2) deveser calculada antes de se inserir o elemento na pilha. O programa deverá, ainda, exibir um menu para as opções de inserir novo aluno, de mostrar o topo da pilha, de mostrar todos e de remover umelemento.


#include /
#include
#define NUM_MAX_ITENS 5


typedef struct //cria a estrutura inicial da pilha com suas variaveis e aponta para a proxima estrutura
{
char nome[51];
int ra;float nota1;
float nota2;
float media;

} Ficha;



typedef struct // cria a estrutura da pilha, a quantidade de elementos que podem ser alocados e aponta para a proxima
{
Fichaitem[NUM_MAX_ITENS];
int topo;
} Pilha;



int push(Pilha *pPilha, Ficha *pFicha); //interface de operações e estado da pilha
int pop (Pilha *pPilha, Ficha *pFicha);



int push(Pilha*pPilha, Ficha *pFicha)
{
// verificar se a pilha esta cheia

if (pPilha->topo == NUM_MAX_ITENS) return 1;

// empilhar a nova ficha no topo da pilha

pPilha->item[pPilha->topo] =*pFicha;

// incrementar o topo da pilha

pPilha->topo++;

// retornar indicando empilhamento bem sucedido

return 0;
}



int pop(Pilha *pPilha, Ficha *pFicha)
{
// verificarse a pilha esta vazia

if (pPilha->topo == 0) return -1;

// decrementar o topo da pilha

pPilha ->topo--;

// recuperar o elemento que estava no topo

*pFicha =pPilha->item[pPilha->topo];

// retornar indicando desempilhamento bem sucedido

return 0;

}


int main()
{
Pilha minhaPilha;
Ficha minhaFicha;
int opcao,i,r;
Ficha *pFicha;

// iniciar apilha vazia

minhaPilha.topo=0;

do
{ // menu de opções
system("cls");
printf("[1] Empilhar uma nova ficha\n");
printf("[2] Desempilhar uma ficha\n");
printf("[3]...
tracking img