
		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);
	
	 }