Pilha Simplismente Encadeada
Por: bruno12ferreira • 6/5/2019 • Trabalho acadêmico • 956 Palavras (4 Páginas) • 158 Visualizações
#include <stdio.h>
#include <stdlib.h>
typedef enum {false, true} bool;
typedef struct no{
int valor;
struct no *prox;
}noCedula;
noCedula *pilha[7];
int valorNota[7] = {1,2,5,10,20,50,100};
void inicializaPilha ();
void abastecePilha (int quant, int v);
void imprimeSaldo ();
void imprimeSomaCedulas();
bool saqueDisponivel (int valor);
bool saque (int valor);
int main (int argc, char*argv[]){
int valor;
inicializaPilha();
abastecePilha(55, 2);
abastecePilha(42, 3);
abastecePilha(61, 5);
abastecePilha(28, 10);
abastecePilha(35, 20);
abastecePilha(64, 50);
abastecePilha(14, 100);
imprimeSaldo();
printf("\nDigite um valor a ser sacado !\n");
scanf ("%d", &valor);
if(saqueDisponivel(valor) == true){
printf("\nSaque disponivel\n");
}else{
printf("\nNao disponivel\n");
}
if(saque(valor)==true){
printf("\nSaque realizado com sucesso");
} else {
printf("\nSem saque\n");
}
imprimeSaldo();
return 0;
}
void inicializaPilha(){
int i;
for (i=0; i<7; i++){
pilha[i] = NULL;
}
}
void abastecePilha (int quant, int valor){
int i,pos;
noCedula *novo;
switch(valor){
case 1:
pos=0;
break;
case 2:
pos=1;
break;
case 5:
pos=2;
break;
case 10:
pos=3;
break;
case 20:
pos=4;
break;
case 50:
pos=5;
break;
case 100:
pos=6;
break;
default:
printf("\nValor de cedula inválido !\n");
break;
}
for (i=0; i<quant; i++){
novo = (noCedula*)malloc(sizeof(noCedula));
novo->valor = valor;
novo->prox = pilha[pos];
pilha[pos] = novo;
}
}
void imprimeSaldo(){
noCedula *atual;
int i, soma=0;
for (i=0; i<7; i++){
...