Ir ao conteúdo
  • Cadastre-se

Dificuldade em rastrear código


washy

Posts recomendados

ola turma tudo beleza ??...

alguem poderia me ajudar a entender esse exercicio...

O algoritmo apresentado utiliza duas pilhas. Analise o código abaixo e faça os desenhos que representem a sua execução para as seguintes entradas: 1, 2, 3, 4, 99. Informe o que o programa irá colocar na tela.



Void main ( ) {
TipoPilha P1, P2;
TipoItemPilha NR, X;
int Y;
FPVazia ( P1 );
FPVazia ( P2 );
cin << X.Elem;
while (X != 99) {
Empilhar( X, P1 );
cin << X.Elem;
} / *- - - - - Faça apenas um desenho que indique como estarão as pilhas neste
ponto de execução do programa. A partir daqui façaum desenho para cada
função executada.*/


while ( !Vazia( P1 ) ) {
Desempilhar ( P1, NR );
Y = NR.Elem % 2;
if ( Y = = 0) {
NR.Elem = NR.Elem * 2;
Empilhar( NR, P2 );
}
}
while ( !Vazia( P2 ) ) {
Desempilhar ( P2, NR );
cout << NR.Elem;
}
}


struct TipoItemPilha {
int Elem;
}
struct ItemdaPilha{
int Item;
ItemdaPilha * Prox;
};
struct TipoPilha {
ItemdaPilha *Fundo;
ItemdaPilha *Topo;
int Tamanho;
};
void FPVazia( TipoPilha &Pilha) {
Pilha.Topo = (ItemdaPilha*) malloc(sizeof(ItemdaPilha));
Pilha.Fundo = Pilha.Topo;
(*Pilha.Topo).Prox = NULL;
Pilha.Tamanho = 0;
}
int Vazia( TipoPilha Pilha) {
return (Pilha.Topo = = Pilha.Fundo);
}
void Empilha(TipoItemPilha ItemP, TipoPilha &Pilha) {
ItemdaPilha *Aux;
Aux = (ItemdaPilha*) malloc(sizeof(ItemdaPilha));
(*Aux).Item = ItemP;
(*Aux).Prox = Pilha.Topo;
Pilha.Topo = Aux;
Pilha.Tamanho = Pilha.Tamanho + 1;
}
void Desempilha(TipoPilha &Pilha, TipoItemPilha &ItemPilha ) {
if ( Vazia(Pilha))
printf(" Pilha vazia");
else {
ItemdaPilha *Aux;
Aux = Pilha.Topo;
Pilha.Topo = (*Aux).Prox;
ItemPilha = (*Aux).Item;
delete Aux;
Pilha.Tamanho --;
}
}


post-426572-1388494869609_thumb.jpg

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...