Jun 3, 2013 at 3:04am UTC
I have problems , I need to compare two values the value entered first and the second value and make comparisons to sort the values in increasing order with the bubble sort method in a queue dynamically linked but it is so difficult in C + + can someone help me?
My program:
main.cpp
#include <iostream>
#include <windows.h>
#include "Fila.h"
#define INSERE 1
#define IMPRIME 2
#define ORGANIZA 3
#define RETIRA 4
#define SAIR 5
int main()
{
int iOp, i, n, contador, tot;
contador = 0;
tot = 0;
FILA fila;
NO nos;
cout<< "\t\tBEM VINDO A FILA DINAMICA ENCADEADA BUBBLE SORT" << endl;
do{
cout<< "\n\n\n\n";
iOp = fila.MenuOpcoes();
switch (iOp)
{
case INSERE: cout<< "Digite quantos Elementos deseja inserir?"<<endl;
cin >> tot;
for( i=0; i<tot; i++)
{
cout<< "Digite o Elemento Numero " << i+1 <<endl;
cin >> n;
fila.Insere( n );
}
cout<< "Elementos Inseridos com Sucesso" << endl;
break;
case IMPRIME: cout << " Os Elementos Sao :." << endl;
fila.Imprime();
break;
case ORGANIZA: cout << " Organizando:." <<endl;
Sleep( 2500 );
fila.Organiza( tot);
break;
case RETIRA: cout << "Elemento foi Removido" << endl;
fila.Retira();
break;
case SAIR:
break;
default:
break;
}
} while( iOp != SAIR);
---------------------------------------------------------------------
fila.cpp
#include "Fila.h"
using namespace std;
FILA::FILA()
{
cabeca = NULL;
}
int FILA::MenuOpcoes()
{
int op;
cout<< "1. Insere Elemento:." <<endl;
cout<< "2. Imprime Elemento:." <<endl;
cout<< "3. Organiza Elemento:." <<endl;
cout<< "4. Remove Elemento:." <<endl;
cout<< "5. Sair:." <<endl;
cin>> op;
return ( op );
}
int FILA::Insere(int numero)
{
int retorno;
NO *percorre, *no;
no = new NO;
if (no == NULL)
{
retorno = CHEIA;
}
else
{
no->Set(numero);
if (cabeca == NULL)
{
no->SetProximo(cabeca);
cabeca = no;
retorno = OK;
}
else
{
for ( percorre = cabeca;((percorre->GetProximo()) != NULL);percorre = percorre->GetProximo());
percorre->SetProximo(no);
no->SetProximo(NULL);
retorno = OK;
}
}
return(retorno);
}
int FILA::Retira()
{
int retorno;
NO *no;
no = cabeca;
if (no == NULL)
{
retorno = VAZIA;
}
else
{
if (no->GetProximo() == NULL)
cabeca = NULL;
else
cabeca = no->GetProximo();
delete no;
retorno = OK;
}
return (retorno);
}
int FILA::Imprime()
{
int retorno;
NO *percorre, *no;
if (cabeca == NULL)
{
retorno = VAZIA;
}
else
{
if (cabeca->GetProximo() == NULL)
{
cout << cabeca->Get() << endl;
}
else
{
cout << "IMPRIMINDO FILA" << endl;
for ( percorre = cabeca;((percorre->GetProximo()) != NULL);percorre = percorre->GetProximo())
cout << percorre->Get() << endl;
cout << percorre->Get() << endl;
}
retorno = OK;
}
return(retorno);
}
-----------------------\/------------ this method have problems\/
void FILA::Organiza( int tot)
{
NO *percorre, *cabeca;
int i, j;
for( i = 0; i < tot; i++ )
{
for( j = i + 1; j < tot; j++ ) // sempre 1 elemento à frente
{
// se o (x > (x+1)) então o x passa pra frente (ordem crescente)
if( percorre->Get() > cabeca->GetProximo())
{
cabeca->Get() = percorre->Get();
percorre->Get() = teste->GetProximo();
teste->GetProximo() = cabeca->Get() ;
}
here is the great problem /\ /\ /\
lvalue required as left operand of assignment
lvalue required as left operand of assignment
lvalue required as left operand of assignment
}
} // fim da ordenação
}
----------------------------------------------------------------------
header fila.h
//Renata Yoko Guima
//Fila.h
#ifndef FILA_H
#define FILA_H
#include <iostream>
using namespace std;
#include "No.h"
//Estados
#define OK 0
#define VAZIA 1
#define CHEIA 2
class FILA{
NO *cabeca;
public:
FILA();
int MenuOpcoes();
int Insere(int numero);
int Retira();
int Imprime();
void Organiza(int tot);
};
#endif
--------------------------------------------
No.cpp
//Renata Yoko Guima
//No.cpp
#include "No.h"
NO::NO()
{
}
int NO::Get()
{
return(numero);
}
void NO::Set(int num)
{
numero = num;
}
void NO::SetProximo(NO *prox)
{
proximo = prox;
}
NO * NO::GetProximo()
{
return(proximo);
}
NO::~NO()
{
proximo = NULL;
}
----------------------------------------------------
header No.h
//Renata Yoko Guima
//no.h
#include <iostream>
#ifndef NO_H
#define NO_H
class NO{
int numero;
NO * proximo;
public:
NO();
int Get();
void Set(int num);
void SetProximo(NO *prox);
void Organiza( int tot);
NO * GetProximo();
~NO();
};
#endif
Jun 3, 2013 at 1:59pm UTC
instead of Get...()
functions left of =
use the appropriate Set...()
functions