Pilhas

Disponível somente no TrabalhosFeitos
  • Páginas : 2 (313 palavras )
  • Download(s) : 0
  • Publicado : 12 de novembro de 2012
Ler documento completo
Amostra do texto
// --------------------------------------- Pilha Encadeada

#include
#include
#include
#include

// ------------------------------------- Defini‡äes

#define SUCESSO 0#define FALTA_DE_MEMORIA 1
#define PILHA_VAZIA 2

// -------------------------------------- Tipos de Dados

typedef int TDADOS;

typedef struct nodo {
TDADOS info;struct nodo *seg;
} TNODO;


typedef struct {
TNODO *topo;
} TPILHA;

// -------------------------------------------- Prototypes

void Cria_Pilha(TPILHA *p);int Push(TPILHA *p, TDADOS dado);
int Pop(TPILHA *p, TDADOS *dado);
int Consulta_Pilha(TPILHA p, TDADOS *dado);
void Imprime_Erro(int erro);
void Exibe_Pilha(TPILHA p);

//-------------------------------------------- Programa Principal

int main(void)
{
TPILHA p;
TDADOS valor;
char tecla;
int erro;

Cria_Pilha(&p);
do {
Exibe_Pilha(p);
printf("[P]ush, p[O]p,[C]onsultar ou [F]im?");
do {
tecla = toupper(getchar());
} while (!strchr("POCF",tecla));
switch (tecla)
{
case 'P': printf("Valor a ser Empilhado: ");scanf("%d",&valor);
erro = Push(&p,valor);
if (erro)
Imprime_Erro(erro);
break;
case 'O': erro = Pop(&p,&valor);
if (erro)
Imprime_Erro(erro);
else
printf("ValorDesempilhado: %d, tecle algo",valor);
break;
case 'C': erro = Consulta_Pilha(p,&valor);
if (erro)
Imprime_Erro(erro);
else
printf("Topo: %d, tecle algo",valor);
break;}
} while (tecla != 'F');
}

// ---------------------------------------------- Cria_Pilha

void Cria_Pilha(TPILHA *p)
{
p->topo = NULL;
}

//---------------------------------------------- Push

int Push(TPILHA *p, TDADOS dado)
{
TNODO *t;

t = (TNODO *) malloc(sizeof(TNODO));
if (t == NULL)
return(FALTA_DE_MEMORIA);
else
{
t->info = dado;...
tracking img