Ir para conteúdo
Fórum Script Brasil
  • 0

Estrutura de Dados Pilha


Ghost01

Pergunta

Boa tarde, galera,

Bom estou aprendendo a mecher com pilha usando ponteiros, tentei criar minha pilha depois de varias tentativas e varias modos que eu tentei,cheguei esse modelo abaixo:


#include <stdio.h>
#include <stdlib.h>

/* Define o tamanho máximo da pilha */
#define ptam 5

struct pilha_f
{
int item[ptam];
int topo;
};

typedef struct pilha_f Pilha;

void iniciarpilha (Pilha* pilha);
void inserir (Pilha* pilha, int elem);
//int verpilha ();
int pilhavazia (Pilha* pilha);
//int exibir ();

//struct pilha p;

//int i=1, elem;


int main(int argc, char *argv[])
{
int op;

while(op!=0){

printf ("*******************************************************\n");
printf ("* Menu: *\n");
printf ("* 1 - Iniciar Pilha *\n");
printf ("* 2 - Existe Pilha *\n");
printf ("* 3 - Inserir elemento na Pilha *\n");
printf ("* 4 - Exibir Pilha *\n");
printf ("* 0 - Sair do programa *\n");
printf ("*******************************************************\n");
printf ("\nDigite a opcao desejada:");
scanf ("%d",&op);
system ("cls");

switch (op)
{
case 1:
//printf("Opcao 1\n");
iniciarpilha();
printf("Digite 0 - Sair do programa / 1 - Menu principal:");
scanf("%d",&op);
system("cls");
break;
case 2:
//printf("Opcao 2\n");
//verpilha();
printf("Digite 0 - Sair do programa / 1 - Menu principal:");
scanf("%d",&op);
system("cls");
break;
case 3:
//printf("Opcao 3\n");
inserir();
printf("Digite 0 - Sair do programa / 1 - Menu principal:");
scanf("%d",&op);
system("cls");
break;
case 4:
//printf("Opcao 4\n");
//exibir();
printf("\n\nDigite 0 - Sair do programa / 1 - Menu principal:");
scanf("%d",&op);
system("cls");
break;
case 0:
op = 0;
break;
default:
printf("Opcao Incorreta!!! Escolha entre uma das opcoes do Menu.\n");
printf("Digite 0 - Sair do programa / 1 - Menu principal:");
scanf("%d",&op);
system("cls");
}
}

printf("\nPROGRAMA ENCERRADO COM SUCESSO\n");
system("PAUSE");
return 0;
}

/* Inicia a Pilha */

void iniciarpilha (Pilha* pilha)
{
pilha->topo = -1;
}

/* ----------------------------------------------- */
/*Função que verificar se a pilha está vazia.*/
/* ----------------------------------------------- */
int pilhavazia (Pilha* pilha)
{
/* if( p.topo == -1)
{
return 1;
} else {
return 0;
}*/
return (pilha->topo == -1);
}
/* ------------------------------------------------ */
/*Função que verifica se existe pilha criada.*/
/* ------------------------------------------------ */
/*int verpilha ()
{
if (pilhavazia(pilha))
{
printf("Existe.\n\n");
}else
{
printf("não existe pilha, por favor escolha a opcao 1!\n\n");
}
}*/

/* ------------------------------------------------- */
/*Insere elemntos na pilha de filas*/
/* ------------------------------------------------- */
void inserir (Pilha* pilha, int elem)
{
/*
for(i=i;i<=ptam;i++)
{
printf ("Digite o proximo elemento da Pilha:");
scanf ("%d",&elem);
p.item[i] = elem;
p.topo = p.item[i];
}
*/

if (pilha->topo == ptam - 1)
{
printf("Pilha Cheia!!!\n");
exit(0);
}
pilha->topo++;
pilha->item[pilha->topo] = elem;
}

/* ------------------------------------------------- */
/* Exibe o topo da pilha */
/* ------------------------------------------------- */
/*int exibir ()
{
int valor;

valor = p.topo;

p.topo = p.item[i--];

printf ("O Topo da pilha é: %d",valor);

}*/
[/codebox]

To tentando fazer funcionar, não observe essas linha comentadas, pois algumas são de tentativas que eu fiz com outra forma, será que poderia me dar uma luz, de onde ta o erro desse codigo?

O problema está na linha em vermelho: o erro no devc é o seguinte:

In function `main':

63 too few arguments to function `iniciarpilha'

77 too few arguments to function `inserir'

[build Error] [main.o] Error 1

Aguardo qualquer tipo de informação.

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

Assinatura da função: void iniciarpilha (Pilha* pilha);

Como você está a chamando: iniciarpilha();

Cade a pilha, amigo?! Você não está passando para a função! O erro na função inserir é a mesma coisa, você está chamando ela de forma diferente (sem nada), falta a pilha e o elemento para inserir nela.

No mais, gostei da sua pilha, bom trabalho!

Abraços!

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...