Tema: Colas en c++
Ver Mensaje Individual
  #6 (permalink)  
Antiguo 27/07/2011, 16:51
juanluisalmonte
 
Fecha de Ingreso: julio-2011
Mensajes: 7
Antigüedad: 13 años, 6 meses
Puntos: 0
Respuesta: Colas en c++

Gracias a todos por sus apreciados comentarios. Aqui les dejo lo que he adelantado y la idea de lo que quiero seguir haciendo.

tengo mis clases: Turno.h, Turno.cpp, Cola.h, Cola.cpp y Sistema.cpp
Lo que quiero ahora es que mis turnos vallan pasando uno por uno luego de que
el cliente tome uno.AAlguna idea.

El turno, vendria siendo cada nodo de mi cola.

clase: Turno.h

#include <iostream>
#include <string>

using namespace std;

class Turno{
private:
string nombre;
Turno* anterior;

public:
string getNombre();
void setNombre(string nombre);
Turno* getAnterior();
void setAnterior(Turno* anterior);
Turno();

};


Clase: Turno.cpp

#include "Turno.h"

string Turno:: getNombre(){

return nombre;
}

void Turno::setNombre(string nombre){
this -> nombre = nombre;
}

Turno* Turno::getAnterior(){

return anterior;
}

void Turno::setAnterior(Turno* anterior){
this -> anterior = anterior;
}

Turno::Turno(){
anterior = NULL;
}


Clase: Cola.h


#include "Turno.cpp"

class Cola{
private:
int tamano;
Turno* primero;
Turno* ultimo;

public:
Cola();
~Cola();
int getTamano();
void setTamano(int tamano);
Turno* getPrimero();
Turno* getUltimo();
Turno* extraer();
void agregar(Turno* turno);


};

Clase: Cola.cpp

#include "Cola.h"

Cola::Cola(){
primero = NULL;
ultimo = NULL;

}

Cola::~Cola(){
Turno* tempA;
Turno* tempB;

if(primero != NULL){
tempA = primero;
while(tempA != NULL){
tempB = tempA;
tempA = (*tempA).getAnterior();
delete tempB;
}

}
Cola();
}


int Cola::getTamano(){
return tamano;
}

Turno* Cola::getPrimero(){
return primero;

}

Turno* Cola::getUltimo(){
return ultimo;

}

void Cola::setTamano(int tamano){
this -> tamano = tamano;

}

void Cola::agregar(Turno* turno){
if(primero == NULL){
primero = turno;
ultimo = turno;
}
else{
Turno* temp = ultimo;
ultimo = turno;
temp->setAnterior(ultimo);

}
}

Turno* Cola:: extraer(){
if(primero == NULL){
return NULL;

}
Turno* temp = primero;
primero = primero -> getAnterior();
return temp;
}


Clase: Sistema.cpp (main)

#include "Cola.cpp"

using namespace std;

int main(){

Cola* cola = new Cola();

Turno* turno1 = new Turno();
Turno* turno2 = new Turno();

turno1 -> setNombre("JuanlUis");
turno2 -> setNombre("Otro");

cola ->agregar(turno1);
cola ->agregar(turno2);


Turno* i = cola -> extraer();

while(i != NULL){
cout<<i -> getNombre()<<endl;
delete i;
i = cola -> extraer();
}


system("PAUSE");
return 0;
}


Disculpen lo largo del comentario.