Exercicio C pilha e fila help

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 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
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]

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.