Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
    • DiF

      Poste seus códigos corretamente!   21-05-2016

      Prezados membros do Fórum do Clube do Hardware, O Fórum oferece um recurso chamado CODE, onde o ícone no painel do editor é  <>     O uso deste recurso é  imprescindível para uma melhor leitura, manter a organização, diferenciar de texto comum e principalmente evitar que os compiladores e IDEs acusem erro ao colar um código copiado daqui. Portanto convido-lhes para ler as instruções de como usar este recurso CODE neste tópico:  
Entre para seguir isso  
falconrock2

Ajuda com exercício sobre pilha/fila

Recommended Posts

Fazer um programa que junte os exemplos de pilha e fila

juntar o programa para nao usar ponteiros

Criar funcao para inverte a pilha e a fila.

#include <iostream>

#include <cstdlib>

#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(p)){ return false; }

else {

p->topo++;

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

return true;

}

}

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

if (pilhaVazia(p)){ 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(p)){ 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 <iostream>

#include <cstdlib>

#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";

}

falconrock2@click21.com.br

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Entre para seguir isso  





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações 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

×