vini_seven
(usa Outra)
Enviado em 26/09/2017 - 22:57h
Desenvolva um programa em C, implementando as seguintes operações em pilhas:
inicializaPilha (): cria uma nova pilha vazia.
push(): inclui (empilha) um elemento da pilha
pop(): exclui (desempilha) um elemento da pilha
pilhaVazia(): retorna se a pilha está vazia ou não
consultaPilha(): retorna o elemento que está no topo da pilha sem retirá-lo da pilha.
finalizaPilha(): libera a memória alocada pela pilha
a. Implemente a pilha utilizando vetor.
tenho esse "desafio pra fazer" tô aprendendo na área.. não sou nenhum programador nato.. por isso peço ajuda de vocês.. tem um código meu que estava fazendo tá em 50% mas não consigo dar andamento..
#include <stdio.h>
#include <stdlib.h>
#define max 10
#define push 1
#define pop 2
#define pilhavazia 3
#define consultapilha 4
struct pilha1{
int max;
int topo;
}
int menu(void)
{
int opcao;
printf("MENU\n");
printf("%d EMPILHAR A PILHA\n",push);
printf("%d DESEMPILHAR\n",pop);
printf("%d VERIFICAR SE PILHA ESTA VAZIA\n",pilhavazia);
printf("%d CONSULTA PILHA\n",consultapilha);
printf("%d FINALIZA PILHA\n",finalizapilha);
printf("Opcao: ");
scanf ("%d", &opcao);
putchar("\n");
return opcao;
}
inicicalizaPilha ()
{
pilha1 *pi;
pi=(pilha1*) malloc (sizeof(struct pilha1));
return pi;
}
int pilhavazia (pilha1* pi)
{
return pi->topo == 0;
}
int cheia (int topo)
{
return topo==max;
}
int push ( int *topo, int pilha1[])
{
if (pilha1->topo == max)
printf ("Erro: pilha está cheia\n");
else {
pilha1->topo++;
}
}
int pop ( int *topo, int pilha1[])
{
if (pilha1->topo==max))
printf ("Pilha está cheia\n");
else {
pilha1[(topo)--];
}
}
se puderem me ajudar mechendo nele e colocar o que não falta. ou mandar um que tenha todas as funções pedidas