Pilha em c/c++

416 palavras 2 páginas
#include <stdio.h>
#include <stdlib.h>

struct TipoItem { char car;
};
typedef struct TipoCelula *TipoApontador; struct TipoCelula { struct TipoItem Item; TipoApontador Prox;
};
struct TipoPilha { TipoApontador Fundo, Topo; int Tamanho;
} ;

void FPVazia(struct TipoPilha *Pilha)
{
Pilha->Topo = (TipoApontador) malloc (sizeof(struct TipoCelula)); Pilha->Fundo = Pilha->Topo; Pilha->Topo->Prox = NULL; Pilha->Tamanho = 0;
}

void Empilha(struct TipoItem x ,struct TipoPilha *Pilha)
{
TipoApontador Aux; Aux = (TipoApontador) malloc(sizeof(struct TipoCelula)) ; Pilha->Topo->Item = x; Aux->Prox = Pilha->Topo; Pilha->Topo = Aux; Pilha->Tamanho++;
}

void Desempilha(struct TipoPilha *Pilha ,struct TipoItem *Item)
{
TipoApontador q; if(Pilha->Topo == Pilha->Fundo){ printf("Erro:lista vazia\n"); return; } q = Pilha->Topo; Pilha->Topo = q->Prox; *Item = q->Prox->Item; free(q); Pilha->Tamanho++;
}
int Tamanho(struct TipoPilha Pilha)
{
return (Pilha.Tamanho);
}

int Compara(struct TipoPilha *Pilha)
{
int x,z = 1; TipoApontador Aux; Aux = Pilha->Topo->Prox; x = Pilha->Tamanho; while(Aux != NULL) { if((x%2 == 0)&&(Aux->Item.car != 'P')) z = 0; else if((x%2 != 0)&&(Aux->Item.car == 'P')) z = 0; Aux = Aux->Prox; x--; } return z;
}
void Imprime(struct TipoPilha *Pilha)
{
TipoApontador Aux; Aux = Pilha->Topo; while(Aux != NULL) { printf(" %c - ",Aux->Item.car); Aux=Aux->Prox; } printf("\n");
}

int main()
{
struct TipoPilha Pilha,Pilha2; struct TipoItem Item; FPVazia(&Pilha); char op = '1'; int h,i; while(op != '0') { system("cls"); printf("1 - Empilhar 1 caracter \n"); printf("2 - Desempilhar\n"); printf("3 - Imprimir\n"); printf("4 - Comparar\n"); printf("5 - Empilhar varios caracter\n"); printf("0 - sair\n"); scanf(" %c",&op); if(op == '1') { system("cls"); printf("Digite o caracter: ");

Relacionados

  • Pilhas em c e c++
    476 palavras | 2 páginas
  • Pilhas C++
    1680 palavras | 7 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
    758 palavras | 4 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