Buscar

Exercicio - inverter Pilha

Prévia do material em texto

#include <stdio.h>
#include <stdlib.h>
#define MAX 10
typedef struct pilha {
 int qnt;
 int dados[MAX];
} Pilha;
Pilha* cria() {
 Pilha* p=(Pilha*)malloc(sizeof(Pilha));
 if (p != NULL) p->qnt = 0;
 return p;
}
void insere(Pilha *p, int valor) {
 p->dados[p->qnt] = valor;
 p->qnt++;
}
void exibe(Pilha *p) {
 for (int i = 0; i < p->qnt; i++) printf("%3d", p->dados[i]);
}
Pilha* inverter(Pilha *p) {
 Pilha *outra = cria();
 while (p->qnt > 0) {
 outra->dados[outra->qnt] = p->dados[p->qnt - 1];
 p->qnt--;
 outra->qnt++;
 }
 return outra;
}
int main() {
 Pilha *p = cria();
 insere(p, 1);
 insere(p, 2);
 insere(p, 3);
 insere(p, 4);
 insere(p, 5);
 insere(p, 6);
 insere(p, 7);
 insere(p, 8);
 insere(p, 9);
 insere(p, 10);
 
	printf("\n PILHA ORIGINAL : ");
	exibe(p);
 p = inverter(p);
 printf("\n");
 printf("\n PILHA INVERTIDA: ");
 exibe(p);
}

Continue navegando

Outros materiais