Ir ao conteúdo
  • Cadastre-se

C++ Pilha Em C++ como fazer


Posts recomendados

Boa noite, podem me ajudar, como crio uma Pilha em C++ 

 

Empilhar 8 elementos

Desempilhar os 8 elementos e na ordem que eles forem saindo, sendo EMPILHADOS em outra Pilha

Imprimir as duas pilhas

 

ficaria tipo isto na tela : 12345678

                                      87654321

Link para o comentário
Compartilhar em outros sites

  • Moderador

Caro usuário,

 

Seja bem-vindo ao Fórum do Clube do Hardware.

 

No intuito de servir como fonte de pesquisa no caso de instituições de ensino, informamos que incorrer no resolvimento por completo de questões relacionadas a disciplinas escolares de cursos técnicos e faculdades podem ser revistas e removidas pela Equipe de Moderação do Clube do Hardware.

 

Para sanar dúvidas sobre esse tipo de problema, por gentileza, publique o passo a passo do desenvolvimento da questão, projeto, monografia ou conteúdo em dúvida para que possamos analisar se a resposta está correta ou não, ou para que possa ser auxiliado com a dúvida no desenvolvimento do exercício.

 

Infelizmente, não há como resolver os trabalhos pelos usuários. O objetivo do Fórum do Clube do Hardware é auxiliar seus usuários a encontrar soluções para que possam sanar suas dúvidas, e não de trazer soluções prontas para seus usuários. Além disso, copiar e colar respostas que não são de autoria própria do qualquer usuário é considerado plágio, o que é ilegal.

 

Esperamos que compreenda.

 

Atenciosamente,

Equipe Clube do Hardware

Link para o comentário
Compartilhar em outros sites

@OcaraMaisLINDOHAHAH acho que o mistério está na função desempilhar, quando desempilhar na pilha 1 pega esse valor e empilha ele na pilha 2 e vice versa. tem mais misterio quando a pilha encher voce desempilha na outra e entao pode empilhar mais ate ambas pilhas estiverem cheias, voce tem um enunciado que realmente pede isso?

adicionado 2 minutos depois

e se ambos estiverem cheias como vai desempilhar?

Link para o comentário
Compartilhar em outros sites

@herbertbahia E Um exercicio, prencher uma pilha com 8 numeros, e entao desempilhar e empilhar novamente os mesmos numeros em outra, porém empilhar como se estivessem saido da primeira e tivessem entrado na segunda

 

tipo isso:   Pilha um 12345678

                 Pilha dois: 87654321

 

adicionado 10 minutos depois

@DiF Brother, eu não estou pedindo resposta, estou pedindo uma ajuda com uma duvida, eu fiz o codigo porém queria um ponto de vista do mesmo feito por outras pessoas mais experientes em programação, pois quando se trata de algorítimos sempre existem mais de uma opção de resolução do problema.

#include <stdio.h>
#include <iostream>
#include <stack>

using namespace std;
int i;

main (){
    
    stack <string> Ra_Pilha1;
    stack <string> Ra_Pilha2;
    
    Ra_Pilha1.push("1 ");
    cout << Ra_Pilha1.top() ;
    
    Ra_Pilha1.push("8 ");
    cout << Ra_Pilha1.top() ;
    
    Ra_Pilha1.push("6 ");
    cout << Ra_Pilha1.top() ;
    
    Ra_Pilha1.push("1 ");
    cout << Ra_Pilha1.top() ;
    
    Ra_Pilha1.push("3 ");
    cout << Ra_Pilha1.top() ;
    
    Ra_Pilha1.push("5 ");
    cout << Ra_Pilha1.top() ;
    
    Ra_Pilha1.push("1 ");
    cout << Ra_Pilha1.top() ;
    
    Ra_Pilha1.push("5 ");
    cout << Ra_Pilha1.top()<<"\n" ;
    

    
        
    for(i=0;i<8;i++){
    
    Ra_Pilha1.pop();
    
}
    
    
    
    Ra_Pilha2.push("5 ");
    cout << Ra_Pilha2.top() ;
    
    Ra_Pilha2.push("1 ");
    cout << Ra_Pilha2.top() ;
    
    Ra_Pilha2.push("5 ");
    cout << Ra_Pilha2.top() ;
    
    Ra_Pilha2.push("3 ");
    cout << Ra_Pilha2.top() ;
    
    Ra_Pilha2.push("1 ");
    cout << Ra_Pilha2.top() ;
    
    Ra_Pilha2.push("6 ");
    cout << Ra_Pilha2.top() ;
    
    Ra_Pilha2.push("8 ");
    cout << Ra_Pilha2.top() ;
    
    Ra_Pilha2.push("1 ");
    cout << Ra_Pilha2.top()<<"\n" ;
    
    
    
    
}

 

 

este é meu código, queria saber se ele esta correto ou dicas para melhorá-lo, agora se isto for contra suas regras okay, é só não responder ao tópico Brother. 

 

Link para o comentário
Compartilhar em outros sites

@OcaraMaisLINDOHAHAH Leu o que eu disse sobre esse exato problema ter sido já discutido dias atrás e ter até um exemplo para o MESMO enunciado no tópico que listei? 

 

Eu apostaria que não pode usar Stack nesse exercício, já que é a exata estrutura que o exercício quer trabalhar. Você deve escrever essa classe pilha...

 

Declare a SUA classe stack e implemente os métodos com o mesmo nome.

 

Não vou repetir aqui o que expliquei dias atrás e você pode ler no tópico que indiquei, mas talvez devesse ler o que está escrito lá. Você tem um livro de C++? Qual é? Tem uma apostila ao menos? Um site de referência?

 

De todo modo o que fez está errado...

 

Que pretende fazer aqui:

 

	...
      
    Ra_Pilha1.push("1 ");
    cout << Ra_Pilha1.top() ;
    
    Ra_Pilha1.push("5 ");
    cout << Ra_Pilha1.top()<<"\n" ;    


    for(i=0;i<8;i++)
    {
        Ra_Pilha1.pop();  
    }

	...

Pergunto isso porque o que está fazendo é colocar os caras na primeira pilha e depois remover todos. E aí quando for tentar por na segunda pilha vou dizer o que vai ter lá: NADA, porque você mesmo apagou todo mundo. 

 

Não use constantes como esse 8 aí. É pedir problemas. Se esquecer um na entrada já era. Não vai aparecer o 8 nunca e o loop já era. E se colocar um a mais ele vai ficar entalado na primeira pilha. Isso se o programa estivesse certo.

 

O mais simples é usar um loop tipo
 

    while( !Pilha1.empty() ) // enquanto a pilha 1 NAO estiver vazia
    {
        Pilha2.push( top(Pilha1) ); // tira da 1 e poe na 2
        Pilha1.pop(); // apaga da 1
    }; 
    
    // so isso

 

Link para o comentário
Compartilhar em outros sites

@arfneto

 

Então eu vi sim, porém eu apenas queria saber se é possível usando meu codigo, com que a pilha Ra_Pilha2 receba os numeros da pilha 1 quando eles saírem automaticamente ? ou terei que refazer o codigo ? Ou existe outro jeito de criar uma pilha nao muito complexa, pois e um exercício basico, empilha 8 numeros retirar os 8 e empilhar na pilha 2 

 

 

Este é o livro, e uso o DEVc++

 

bd46cd4c2fc2f4e59fd6b88de9af682abcd889e62a58e99a1be94650b9b5504f7befebb0d10a47c80a6f64f37e5d3167322a52d78c783979312bed5a7c41bdcf.pdf

adicionado 3 minutos depois

@arfneto e no While que você me recomendou nao deu certo

Sem título.png

Link para o comentário
Compartilhar em outros sites

11 minutos atrás, OcaraMaisLINDOHAHAH disse:

outro jeito de criar uma pilha nao muito complexa, pois e um exercício basico, empilha 8 numeros retirar os 8 e empilhar na pilha 2

 

Isso quer dizer que você achou aquilo muito complexo? Qual parte? É o mesmo exercício

 

Preciso perguntar: Se eu te disse isso

 

image.png.341cc17767450cc621acf2f8c75ed160.png

 

 

você também achou muito complicado? só tem 4 linhas.

 

Pensou nisso:

image.png.5b35377e36b0a1c99bd30d77b7f0f4bd.png

 

Eu acho que você não pode usar

#include <stack>  

e declarar sua pilha. Esse é o exercício afinal. Deve escrever você a sua pilha. A sua classe stack ou como queira chamar. Assim não estará fazendo nada...

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

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

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!