Dúvidas com pilha estática.......

1. Dúvidas com pilha estática.......

Adenilson Santos
Linuxaprendiz007

(usa Outra)

Enviado em 09/06/2020 - 11:14h

Pilha estática, eu preciso empilhar em na pilha1 e imprimir os elementos ex: 12345, digamos que até aí eu consigo certo. Em seguida desempilhar da pilha1, e empilhar na pilha2, os elementos teria que ficar assim ex:
12345
54321
por favor me ajudem vou deixar meu cód abaixo.

#include <stdio.h>

#include <stdlib.h>

#define tamanho 5

typedef struct tipo_pilha{
int dados[tamanho];
int ini;
int topo;
}tipo_pilha;

//Criando uma variável tipo_pilha
tipo_pilha pilha1;
tipo_pilha pilha2;

//Função que empilha um novo elemento no topo
void empilha(int elemento, tipo_pilha *p){
//Verificando se existe alguma posição disponível para uma inserção
if(p->topo == tamanho){
//Se a pilha estiver cheia, não é possível empilhar
printf("Pilha cheia.\n");
system("pause");
}
else
{
//Se a pilha não estiver cheia:
// Adicione o novo elemento no topo
// Incremente o topo
p->dados[p->topo] = elemento;
p->topo++;
}
}

//Função que desempilha e retorna o elemento do topo
int desempilha(tipo_pilha *p){
//Variável que guarda um "backup" do elemento desempilhado
int elemento, i;

//Verificando se existe algum elemento disponível para uma remoção
if(p->topo == p->ini){
//Se a pilha estiver vazia, não será possível desempilhar
printf("Pilha vazia.\n");
system("pause");
}
else
{
//Se a pilha não estiver vazia
// Decremente o topo
// Retorne o elemento que está no topo
p->topo--;
elemento = p->dados[p->topo];
return elemento;
}
}

void imprimir(tipo_pilha *p){
int i;
printf("Imprimindo>>>\n\n");
for(i=0; i<tamanho; i++){
printf("%d", p->dados[i]);
}
}

int main(){
pilha1.topo = 0;
pilha1.ini = 0;

pilha2.topo = 0;
pilha2.ini = 0;

empilha(1, &pilha1);
empilha(2, &pilha1);
empilha(3, &pilha1);
empilha(4, &pilha1);
empilha(5, &pilha1);

imprimir(&pilha1);

}






  






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts