A Pilha Estática
Por: Matheus Freitas • 14/5/2021 • Trabalho acadêmico • 530 Palavras (3 Páginas) • 94 Visualizações
#include <stdio.h>
#include <string.h>
#define TAMANHO_MAXIMO 10
typedef struct{
char titulo [50];
int valor;
float peso;
}DOCUMENTO;
typedef struct{
DOCUMENTO doc[TAMANHO_MAXIMO];
DOCUMENTO* topo;
}PILHA;
void inicializarPilha(PILHA* pilha);
void limpaPilha(PILHA* pilha);
void imprimirPilha(PILHA* pilha);
int push(PILHA* pilha, DOCUMENTO doc);
void pop(PILHA* pilha);
int length(PILHA* pilha);
int main() {
PILHA minhaPilha;
inicializarPilha(&minhaPilha);
DOCUMENTO R1;
strcpy (R1.titulo, "Text1");
R1.valor = 5;
R1.peso = 3.5;
DOCUMENTO R2;
strcpy (R2.titulo, "Text2");
R2.valor = 8;
R2.peso = 4.9;
DOCUMENTO R3;
strcpy (R3.titulo, "Text3");
R3.valor = 9;
R3.peso = 99.99;
push(&minhaPilha, R1);
push(&minhaPilha, R2);
push(&minhaPilha, R3);
imprimirPilha(&minhaPilha);
pop(&minhaPilha);
imprimirPilha(&minhaPilha);
limpaPilha(&minhaPilha);
imprimirPilha(&minhaPilha);
}
void pop(PILHA* pilha){
if (length(pilha)>0){
pilha ->topo -= 1;
}
}
int push(PILHA* pilha, DOCUMENTO doc){
if(length(pilha) < TAMANHO_MAXIMO){
pilha-> doc[length(pilha)] = doc;
...