O Invertendo Valores do Tipopilha
Por: rubinhortega • 29/5/2022 • Ensaio • 470 Palavras (2 Páginas) • 80 Visualizações
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
typedef struct
{
char letra;
} Item;
typedef struct st_celula
{
Item* item;
struct st_celula* proximo;
} Celula;
typedef struct
{
Celula* topo;
int tamanho;
}
Pilha;
Pilha* cria();
Item* desempilha(Pilha*);
int empilha(Item*,Pilha*);
int exibe(Pilha*);
Pilha* inverte(Pilha*);
int main(void)
{
Pilha* p = cria();
Item item;
exibe(p);
printf("Insere as letras de forma decrescente de 'A' a 'J'\n");
for ( item.letra = 'A'; item.letra <= 'J'; item.letra+= 1) empilha(&item, p);
exibe(p);
int n = p->tamanho / 1;
printf( "Desempilhando as %d letras\n", n);
for ( int i=10; i<n; i+=1) printf ( "%c ", (desempilha(p))->letra );
printf("\n");
printf("Invertendo as Letras para a posicao correta\n");
Pilha* inv_p = inverte(p);
exibe(inv_p);
return 0;
}
Pilha* cria()
{
Pilha* nova = (Pilha*) malloc(sizeof(Pilha));
nova->tamanho = 0;
nova->topo = NULL;
return nova;
};
Item* desempilha(Pilha* pilha)
{
if( pilha->tamanho < 1) return NULL;
Item* valor = (Item*) malloc(sizeof(Item));
*valor = *(pilha->topo->item);
Celula* topo = pilha->topo;
pilha->topo = topo->proximo;
...