Exercicio C pilha e fila help

1 resposta
F

S.O.S estou precisando de essa questão resolvida

Ficarei muito grato pela ajuda

Exercicio

Fazer um programa que junte os exemplos de pilha e fila
Ajuntar o programa para nao usar ponteiros
Criar funcao para inverte a pilha e a fila.

[list]

#include 

#include 

#define TAM 200 // tamanho máximo para a área de armazenamento

using namespace std;

struct pilha {

int a[TAM];

int topo;

int tamanho;

};

void iniciaPilha (struct pilha *p){

p->topo = -1;

p->tamanho = TAM - 1;

}

bool pilhaVazia (struct pilha *p){

if (p->topo == -1) return true;

else return false;

}

bool pilhaCheia (struct pilha *p){

if (p->topo == p-> tamanho) return true;

else return false;

}

bool push (struct pilha *p, int n){

if (pilhaCheia§){ return false; }

else {

p->topo++;

p->a[p->topo] = n;

return true;

}

}

bool pop (struct pilha *p, int *r){

if (pilhaVazia§){ return false; }

else {

*r = p->a[p->topo];

p->topo–;

return true;

}

}

void exibePilha (struct pilha *p){

int n; struct pilha t;

iniciaPilha(&t);
// Inverte a pilha para a pilha temporária t

while (!pilhaVazia§){ pop(p,&n); push(&t,n); }

cout << \n\n;

while (!pilhaVazia(&t)){

pop(&t,&n);

cout << n << " ";

push(p,n);

} // Inverte a pilha temporária t de volta para p exibindo na tela

}
int main(int argc, char* argv[]){

struct pilha p;

int x, op;

iniciaPilha(&p);

do {

cout << “\n1 - Testa vazia”;

cout << “\n2 - Testa cheia”;

cout << “\n3 - Empilha”;

cout << “\n4 - Desempilha”;

cout << “\n5 - Exibir pilha”;

cout << “\n6 - Sair”;

cout << "\nDigite sua opcao: ";

cin >> op;

switch (op){

case 1: if (pilhaVazia(&p)){

cout << “Sim\n\n”;

} else {

cout << “Nao\n\n”;

}break;

case 2: if (pilhaCheia(&p)){

cout << “Sim\n\n”;

} else {

cout << “Nao\n\n”;

}break;

case 3: cout << "Digite um numero pra empilhar: ;

cin >> x;

if (push(&p,x)){

cout << “Ok\n\n”;

} else {

cout << “Erro\n\n”;

}break;

case 4: if (pop(&p,&x)){

cout << “Desempilhado = " << x <<”\n\n”;

} else {

cout << “Erro\n\n”;

}break;

case 5: exibePilha(&p); break;

case 6: break;

default: cout << Opcao invalida . . .\n\n;

}

} while (op != 6);

cout << “\n\n;

system(PAUSE);

return 0;

}
#include 

#include 

#define MAX 200 // tamanho máximo para a área de armazenamento

using namespace std;

struct fila {

int a[MAX];

int ini;

int fim;

int tam;

};

void iniciaFila (struct fila *f){

f->ini = 0;

f->fim = 0;

f->tam = 0;

}

bool filaVazia (struct fila *f){

if (f->tam == 0) return true;

else return false;

}

bool filaCheia (struct fila *f){

if (f->tam == MAX) return true;

else return false;

}

bool enfileira (struct fila *f, int n){

if (filaCheia(f)){ return false; }

else {

f->a[f->fim % MAX] = n;

f->fim++;

f->tam++;

return true;

}

}

bool desinfileira (struct fila *f, int *r){

if (filaVazia(f)){ return false; }

else {

*r = f->a[f->ini % MAX];

f->ini++;

f->tam;

return true;

}

}

void exibeFila (struct fila <em>f){

int i,n;

for (i=0; i< f->tam; i++){

desinfileira(f,&n);

cout << n << " ";

enfileira(f,n);

}cout << “\n\n;

}

int main(int argc, char</em> argv[]){

struct fila f;

int x, op;

iniciaFila(&f);

do {

cout << “\n1 - Testa vazia;

cout << “\n2 - Testa cheia;

cout << “\n3 - Enfileira;

cout << “\n4 - Desenfileira;

cout << “\n5 - Exibir fila;

cout << “\n6 - Sair;

cout << "\nDigite sua opcao: ";

cin >> op;

switch (op){

case 1: if (filaVazia(&f)){

cout << Sim\n\n;

} else {

cout << Nao\n\n;

}break;

case 2: if (filaCheia(&f)){

cout << Sim\n\n;

} else {

cout << Nao\n\n;

}break;

case 3: cout << "Digite um numero pra enfileirar: “;

cin >> x;

if (enfileira(&f,x)){

cout << “Ok\n\n”;

} else {

cout << “Erro\n\n”;

}break;

case 4: if (desinfileira(&f,&x)){

cout << “Desenfileirado = " << x <<”\n\n;

} else {

cout << Erro\n\n;

}break;

case 5: exibeFila(&f); break;

case 6: break;

default: cout << Opcao invalida . . .\n\n;

}

} while (op != 6);

cout << “\n\n;

system(PAUSE);

return 0;

}

[/list]

1 Resposta

ViniGodoy

Ao postar códigos, por favor, use a tag code. Se ainda não sabe fazer isso, leia aqui:
http://www.guj.com.br/posts/list/50115.java

Por favor, clique no botão editar do seu código acima e arrume-o.

Também é uma boa se você disser que erro está dando e, se for o caso, em que linha.

Criado 22 de novembro de 2008
Ultima resposta 22 de nov. de 2008
Respostas 1
Participantes 2