Baixe o app para aproveitar ainda mais
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); }
Compartilhar