terça-feira, 18 de agosto de 2015

PUSH POP IDE Code::Blocks C




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

struct Pilha{
    int topo;/*pociçaõ do elemento topo*/
    int capa;
    float *pElem;
};

void criarpilha(struct Pilha *p, int c ){
p->topo = -1;
p->capa = c;
p->pElem =(float*) malloc (c * sizeof(float));
}
int estavazia( struct Pilha *p){
    if(p-> topo == -1)
        return 1; // true
    else
        return 0; // false
}
int estacheia(struct Pilha *p){
    if(p->topo == p->capa -1)
        return 1;// true
    else
        return 0;// false
}

void empilhar(struct Pilha *p, float v){
    p->topo++;
    p->pElem[p->topo] = v;
}

float desempilhar (struct Pilha *p){
    float aux = p->pElem [p->topo];
    p->topo--;
    return aux;
}

float retornatopo(struct Pilha *p){
return p->pElem[p->topo];
}

int main(){
    struct Pilha minhapilha;
    int capacidade, op;
    float valor;

    printf("\nCapacidade da Pilha?\n ");
    scanf("%d", &capacidade);

    criarpilha(&minhapilha, capacidade);

    while(1){ /* Loop Infinito*/

        printf(" \n1- Empilhar (PUSH)\n");
        printf(" \n2- Desempilhar (POP)\n");
        printf(" \n3- Mostar qual elemento do Topo \n");
        printf(" \n4- Sair\n");
        printf(" \nOpcao ? ");
        scanf("%d", &op);

        switch (op){
        case 1: //PUSH
            if(estacheia(&minhapilha)== 1)
                printf("\nPilha Cheia! \n");
            else{
                printf(" \n Valor ?");
                scanf("%f", &valor);
                empilhar(&minhapilha, valor);
            }
            break;

        case 2: // POP
            if(estavazia(&minhapilha)== 1)
                printf("\nPilha Vazia!!!\n");
            else{
                valor = desempilhar(&minhapilha);
                printf("\n%.1f Desempilhado !\n", valor);
            }
            break;

        case 3: // Mostrar o Topo
            if(estavazia(&minhapilha)== 1)
                printf("\n Pilha Vazia !\n");
            else{
                valor = retornatopo(&minhapilha);
                printf("\nTopo: %.1f\n", valor);
            }
            break;

        case 4: // Sair
            exit(0);
            default: printf("\n Opcao Invalida!!!\n");
        }
    }
}

Nenhum comentário:

Postar um comentário