Ir para conteúdo
Fórum Script Brasil
  • 0

Pilha Crescente


CAndradeEstudante

Pergunta

Bom dia pessoal sou novo no fórum e estou com alguns problemas na criação de uma pilha em ordem crescente, em que o topo deve ser sempre o maior valor, fiz o código abaixo

em que os números podem ser inseridos na pilha porém não consigo fazer a comparação para determinar que o topo deve ser sempre o maior.

#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>

using namespace std;
void Inicaliza_Pilha();
void Insere_Pilha(int valor);

struct pilha{
int topo;
int MAXIMO[5];
};
pilha p;
int numero;


int main()
{
    Inicaliza_Pilha();
    while(p.topo<5){
    printf("Digte 5 numeros inteiros: ");
    scanf("\n\r%u",&numero);
    Insere_Pilha(numero);
    }
}
    void Inicaliza_Pilha(){
    p.topo = 0;
}

    void Insere_Pilha(int valor){
      if(p.topo<5){
            p.MAXIMO[p.topo++]=valor;
      }
    }
 

Se alguém puder me ajudar eu agradeço. 

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

Olá, eu não entendi muito bem o que você deseja, pois as regras de pilha é apenas que o último que entra é o primeiro que sai.

exemplo de pilha

#include <iostream>
#include <stdio.h>
#include <stdlib.h>
using namespace std;

struct pilha{
	int numero;
	pilha *anterior;
};
void inserir(int valor);
int remover();
void imprimir();

pilha p;
int numeroItens=0;

int main(){
	
	int valor;
	while(true){
		cout<<"informe um numero: ";
		scanf("%d",&valor);
		inserir(valor);
		cout<<endl;
		imprimir();
		
	}
}

void inserir(int valor){
	if(numeroItens==0){
		//inicializa a pilha.
		p.numero=valor;
		p.anterior=NULL;
	}else{
		pilha *nova=(pilha*) malloc(sizeof(pilha));
		*nova=p;
		p.numero=valor;
		p.anterior=nova;
	}
	numeroItens++;
}

void imprimir(){
	cout<<"-------------itens da pilha----------------"<<endl;
	pilha *pont=&p;
	for(int i=0; i<numeroItens; i++){
		cout<<(*pont).numero<<" ";
		pont=(*pont).anterior;
	}
	cout<<endl<<"Total de itens: "<<numeroItens<<endl;
}

Agora se você deseja inserir os elementos em ordem, pode criar um insert sort, ou algum outro algoritmo de ordenação, quick_sort por exemplo.

 

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,5k
×
×
  • Criar Novo...