14/05/2015, 09:18
|
| | Fecha de Ingreso: enero-2015
Mensajes: 2
Antigüedad: 9 años, 11 meses Puntos: 0 | |
Respuesta: Duda programa C++ clases Os dejo el códig que tengo escrito aceptando posibles modificaciones.Gracias!!!
typedef set< int, less<int> > TListaLineas;
class NodoIndice
{
private:
TListaLineas listaLineas;
public:
NodoIndice(int unaLinea);//que crea un nuevo nodo con una sola linea.
~NodoIndice();//destructor de la clase.
void insertaLinea(int unaLinea);//que inserta una nueva linea en un nodo ya creado.
string recuperaLineas();// que devuelve una cadena formada por la secuencia de lineas separadas por blancos.
};
//Implementación de métodos de la clase NodoIndice
NodoIndice::NodoIndice(int unaLinea)//que crea un nuevo nodo con una sola linea.
{
listaLineas.insert(unaLinea);
}
NodoIndice::~NodoIndice()//destructor de la clase.
{
//listaLineas.clear();
}
void NodoIndice::insertaLinea(int unaLinea)//que inserta una nueva linea en un nodo ya creado.
{
listaLineas.insert(unaLinea);
}
string NodoIndice::recuperaLineas()// que devuelve una cadena formada por la secuencia de lineas separadas por blancos.
{
TListaLineas::iterator listaiter;
string textolineas;
string textolineasaux;
for(listaiter=listaLineas.begin();listaiter!=lista Lineas.end();listaiter++)
{
textolineasaux=*listaiter;
textolineas.append(textolineasaux);
cout<<textolineas;
}
return textolineas;
}
typedef map<string, NodoIndice*, less<string> > TListaOrd;
class ListaIndice
{
private:
TListaOrd laLista;
TListaOrd::iterator iter_lista;
public:
void limpiar();//para vaciar el contenedor
void insertar(string palabra, int unaLinea);//para insertar un nuevo nodo en la lista
string leerPalabra();//que devuelve la palabra correspondiente al nodo de la lista apuntado por el iterador iter lista.
string leerLineas();// que devuelve la lista de lineas de un nodo como una cadena.
void iniciar();//que coloca el iterador iter lista al comienzo de la lista.
void avanzar();//que hace que el iterador iter lista avance un nodo.
bool estaDentro();//que comprueba que el iterador iter lista este dentro delos limites de la lista.
};
//Implementación de métodos de la clase ListaIndice
void ListaIndice::limpiar()//para vaciar el contenedor
{
laLista.clear();
}
void ListaIndice::insertar(string palabra, int unaLinea)//para insertar un nuevo nodo en la lista
{
cout<<"linea "<<unaLinea<<endl;
NodoIndice *Nodo;
Nodo=new NodoIndice(unaLinea);
Nodo->insertaLinea(unaLinea);
laLista.insert(TListaOrd::value_type(palabra,Nodo) );
}
string ListaIndice::leerPalabra()//que devuelve la palabra correspondiente al nodo de la lista apuntado por el iterador iterlista.
{
string palabraaux;
palabraaux=iter_lista->first;
return palabraaux;
}
string ListaIndice::leerLineas()// que devuelve la lista de lineas de un nodo como una cadena.
{
return iter_lista->second->recuperaLineas();
}
void ListaIndice::iniciar()//que coloca el iterador iter lista al comienzo de la lista.
{
iter_lista=laLista.begin();
}
void ListaIndice::avanzar()//que hace que el iterador iter lista avance un nodo.
{
iter_lista++;
}
bool ListaIndice::estaDentro()//que comprueba que el iterador iter lista este dentro de los limites de la lista.
{
bool comprobacion;
comprobacion=0;
if(iter_lista!=laLista.end())
{
comprobacion=1;
};
return comprobacion;
} |