Pilhas em C

758 palavras 4 páginas
Informática – Turma 273

Nayane Borges Saraiva
Francisco Barbosa

1) Faça uma função que receba duas pilhas e verifique se elas são iguais, retornando verdadeiro ou falso.

#include
#include

typedef struct
{
int item;
} tNo;

typedef struct
{
tNo *vElementos; int topo; int maximo;
} tPilha;

int inicializaPilha(tPilha *p, int maximo); int pilhaVazia(tPilha *p); int pilhaCheia(tPilha *p); int inserePilha(tPilha *ppilha, tNo *pno); int retiraPilha(tPilha *ppilha, tNo *pno); int finalizaPilha(tPilha *p); int comparaNo(tNo *pNo1, tNo *pNo2); void preenchePilha(tPilha *p, int numPilha, int numSerie);

int pilhasIguais(tPilha *p1, tPilha *p2);

#define NSERIES 3 const int vTamanhos[NSERIES][2] = {{5, 5}, {5, 5}, {5, 3}}; const int serie[NSERIES][2][5]=
{
{ {1, 2, 3, 4, 5}, {1, 2, 3, 4, 5} }, { {1, 2, 3, 4, 5}, {1, 2, 5, 4, 3} }, { {1, 2, 3, 4, 5}, {1, 2, 3, 4, 5} }
};

void main (void)
{
tPilha vPilha[2]; int i;

for(i=0; ivElementos = (tNo *) malloc (sizeof(tNo) * maximo); if (p->vElementos == NULL) return 0; p->maximo = maximo; p->topo = 0; return -1;
}

int finalizaPilha(tPilha *p)
{
free(p->vElementos); return -1;
}

int pilhaVazia(tPilha *p)
{
if (p->topo == 0) return 1; else return 0;
}

int pilhaCheia(tPilha *p)
{
if (p->topo == p->maximo) return 1; else return 0;
}

int inserePilha(tPilha *ppilha, tNo *pno)
{
if (pilhaCheia(ppilha)) return 0; ppilha->vElementos[ppilha->topo] = *pno; ppilha->topo++; return 1;
}

int retiraPilha(tPilha *ppilha, tNo *pno)
{
if (pilhaVazia(ppilha)) return 0; ppilha->topo--; *pno = ppilha->vElementos[ppilha->topo]; return 1;
}

int comparaNo(tNo *pNo1, tNo *pNo2)
{
return pNo1->item - pNo2->item;
}

void preenchePilha(tPilha *p, int numPilha, int numSerie)
{
int i; tNo no;

for(i=0; !pilhaCheia(p); i++) { no.item =

Relacionados

  • Pilhas C++
    1680 palavras | 7 páginas
  • Pilha em c/c++
    416 palavras | 2 páginas
  • PIlhas em C
    1268 palavras | 6 páginas
  • pilha c#
    1003 palavras | 5 páginas
  • Pilha c
    552 palavras | 3 páginas
  • Pilhas em c e c++
    476 palavras | 2 páginas
  • Pilha C++
    3832 palavras | 16 páginas
  • Pilha em C
    371 palavras | 2 páginas
  • Pilha em c++
    352 palavras | 2 páginas
  • Pilha ling c
    652 palavras | 3 páginas