Problema ao tentar passar o valor de uma pilha para outra

1 resposta
V

Não estou conseguindo passar os valores da pilha1 para a pilha 2, quando tento eu pego o valor do topo da pilha 1, fiquei sem ideias.
segue o codigo

include <stdio.h>

include <stdlib.h>

define tam 3

struct pilha1

{

int topo;

int vetor[tam];

}p;

struct pilha2

{

int topo2;

int vetor2[tam];

}p2;

struct pilha3

{

int topo3;

int vetor3[tam];

}p3;

void inicar()

{

p.topo = -1;

p2.topo2 = -1;

p3.topo3 = -1;

}

void push()

{

int i = 0;

for(i = 0; i<tam; i++)

{

p.topo = p.topo+1;

printf(digitie um valor \n);

scanf("%d",& p.vetor[p.topo]);

printf(PUSH = %d\n, p.vetor[p.topo]);

system(pause);

system(cls);

}
}

//creio que o problema esteja aqui mas não sei como soluciona-lo

void passaP2()

{

int i =0;

for(i; i<tam ; i++)

{

p2.topo2 = p2.topo2+1;

p2.vetor2[p2.topo2] = p2.vetor2[p.topo];
}

}

void verificarP()

{

int i = 0;

for(i= 0; i<=p.topo; i++)

{

if(p.vetor[i]=="")

{

printf("");

}else

{

printf(posicao[%d]: %d \n,i,p.vetor[i]);

}

}

}

void verificarP2()

{

int i = 0;

for(i= 0; i<=p.topo; i++)

{

if(p2.vetor2[i]=="")

{

printf("");

}else

{

printf(posicao2[%d]: %d \n,i,p2.vetor2[i]);

}

}

}
int main()

{

inicar();

push();

verificarP();

passaP2();

verificarP2();

}

1 Resposta

R

Mas a pilha funciona desse jeito, se você empilhar tudo na pilha 1 pra depois passar os valores para pilha 2, ela será a pilha 1 ao contrário, com oque tava no topo da P1 embaixo da P2 e o mesmo com oque estava no fundo.

Criado 19 de março de 2016
Ultima resposta 20 de mar. de 2016
Respostas 1
Participantes 2