Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Interagir entre duas pilhas em linguagem C

Eu estou tendo que fazer para sexta feira um trabalho para a faculdade em linguagem C mas ainda não entendi como fazer.

A questão é criar uma pilha utilizando meu RA e depois preciso desempilhar e jogar os números para outra pilha fazendo com que meu RA fique invertido, porém não estou sabendo jogar o elemento que eu desempilho para a pilha 2.

Até agora foi isso que eu consegui fazer, e mesmo assistindo as aulas da faculdade de novo ainda não entendi como se faz isso. Por favor alguém me de uma luz, me explique o que fazer.

#include <stdio.h>
#include <stdlib.h>

#define tamanho 8

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

tipo_pilha pilha1;
tipo_pilha pilha2;

void empilha(int elemento, tipo_pilha *pilha){
    if(pilha->topo == tamanho){
        printf("Pilha cheia.\n");
        system("pause");
    }
    else
    {
        pilha->dados[pilha->topo] = elemento;
        pilha->topo++;
    }
}

int desempilha(tipo_pilha *pilha){
    int elemento;

    if(pilha->topo == pilha->ini){
        system("pause");
    }
    else
    {
        pilha->topo--;
        elemento = pilha->dados[pilha->topo];
        return elemento;
    }
}

void imprimir (tipo_pilha *pilha){
    int i;
    printf ("\n\nImprime:");
    for (i=0; i<tamanho; i++){
        printf("%d", pilha->dados[i]);
    }
}
int main(){
    pilha1.topo = 0;
    pilha1.ini = 0;

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

    int aux;

    empilha(1, &pilha1);
    empilha(9, &pilha1);
    empilha(1, &pilha1);
    empilha(0, &pilha1);    
    empilha(3, &pilha1);
    empilha(9, &pilha1);
    empilha(4, &pilha1);
    empilha(1, &pilha1);

    imprimir(&pilha1);

    imprimir(&pilha2);
}
1 resposta
solução!

Boa noite, Elder.

Se sua pilha tem tamanho fixo, 8, faça um "for" chamando o "desempilha" da "pilha1".

Cada "desempilha" vai te retornar o valor que foi desempilhado. Pegue esse valor e chame o "empilha" para a pilha 2.