TrabalhosGratuitos.com - Trabalhos, Monografias, Artigos, Exames, Resumos de livros, Dissertações
Pesquisar

O Invertendo Valores do Tipopilha

Por:   •  29/5/2022  •  Ensaio  •  470 Palavras (2 Páginas)  •  67 Visualizações

Página 1 de 2

#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;

...

Baixar como (para membros premium)  txt (2.2 Kb)   pdf (34.2 Kb)   docx (8.6 Kb)  
Continuar por mais 1 página »
Disponível apenas no TrabalhosGratuitos.com