Buscar

#include #include #define TAMANHO_MAXIMO 10 typedef struct{ char titulo [50]; int valor; float peso;...

#include
#include

#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;
pilha->topo= &pilha->doc[length(pilha)];

return 1;

}

return 0;
}
void inicializarPilha(PILHA* pilha){
pilha->topo = NULL;
}
void limpaPilha(PILHA* pilha){
pilha->topo = NULL;
}


int length(PILHA* pilha){
DOCUMENTO* topo = pilha->topo;
int i = 0;
if(topo == NULL) return i;
DOCUMENTO* tmpDocumento = &pilha->doc[i];
while (topo >= tmpDocumento){
i++;
tmpDocumento = &pilha->doc[i];
}
return i;
}


void imprimirPilha(PILHA* pilha){
int i = 0;
DOCUMENTO* topo = pilha->topo;
while(i < length(pilha)){
DOCUMENTO doc = pilha->doc[i];
printf("Documento: %d\n", i + 1);
printf("Título: %s\n", pilha->doc[i].titulo);
printf("Valor: %d\n", pilha->doc[i].valor);
printf("Peso: %.2fkg\n", pilha->doc[i].peso);
i++;
printf("\n\n");

}

}


Essa pergunta também está no material:

Linux Cruzeiro do Sul VirtualCruzeiro do Sul Virtual

💡 1 Resposta

User badge image

Ed Verified user icon

Parece que você compartilhou um trecho de código em linguagem C. Como posso ajudar com esse código?

0
Dislike0

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

✏️ Responder

SetasNegritoItálicoSublinhadoTachadoCitaçãoCódigoLista numeradaLista com marcadoresSubscritoSobrescritoDiminuir recuoAumentar recuoCor da fonteCor de fundoAlinhamentoLimparInserir linkImagemFórmula

Para escrever sua resposta aqui, entre ou crie uma conta

User badge image

Outros materiais