Buenas noches, disculpen la molestia. Me encuentro realizando un algoritmo que lee una serie de datos de un archivo, los almacena en objetos de una clase que he creado, y luego esos objetos van a una lista.
Ahora, el problema que tengo es que el numero de objetos que debo crear es algo que viene dado en archivo que leo. No se como crear la cantidad de nodos necesaria, ya que no siempre la cantidad de objetos para agregar en la lista sera igual.
He pensado que quiza podria agregar a mi algoritmo la habilidad de agregar nodos mediante el nombre de una variable. Por ejemplo, si tengo una cadena de caracteres llamada "nombre" y que contenga "nodo1" como valor inicial, y fuera cambiando el nombre de la variable cada vez que necesite crear un nodo (nodo1, nodo2, nodo3...). Pero no se si pueda hacerse algo como esto...
Código C++:
Ver originalstring nombre = "nodo1"; //Ir cambiando este valir a medida que avanza el algoritmo
nodo nombre; //El valor de nodo tendria que ser nodo1, que es lo que contiene la variable nombre
Les muestro parte de mi codigo, sinceramente no se trabajar bien con listas y a esto es a lo que he podido llegar hasta ahora. Si existe una forma de enlazar cada nodo a su siguiente sin hacer lo que se me ocurrio en principio, estaria inmensamente agradecido con su ayuda. El archivo Datos.txt contiene un numero en su primera linea, que indica el numero de objetos que tendre, y luego la lista de objetos, uno por linea.
Código C++:
Ver originalusing namespace std;
class cosa {
public:
string nombre;
cosa(){ //Constructor
nombre = "default";
}
};
struct Nodo{ //Nodo
cosa G1;
struct Nodo *sig, *ant;
};
struct Nodo *inicio, *final;
int main(){
int cantidad=0;
int comodin3;
int operaciones;
string comodin1;
char comodin2[1000];
struct Nodo *sujetos;
sujetos=new(struct Nodo);
ifstream archivo;
archivo.open("datos.txt");
if (archivo == NULL){
cout << "El archivo no existe \n" << endl;
}else{
archivo.getline(comodin2, 1000, '\n'); //Lectura de numero de objetos
cantidad
= atoi(comodin2
);
for (int i=0; i<cantidad; i++){
archivo.getline(comodin2, 1000, '\n'); //Lectura de nombre
sujetos->G1.nombre = comodin2;
//
// Por aca tendria que agregar el objeto al nodo y enlazar al siguiente
// Por aca tendria que agregar el objeto al nodo y enlazar al siguiente
// Por aca tendria que agregar el objeto al nodo y enlazar al siguiente
// Por aca tendria que agregar el objeto al nodo y enlazar al siguiente
// Por aca tendria que agregar el objeto al nodo y enlazar al siguiente
//
}
archivo.close();
}
}
Podrian darme una solucion que me permita agregar ese objeto al nodo y agregar a un siguiente nodo? Ya sea creando uno nuevo o no.
PD: El codigo original es mucho mas largo, he editado todo lo que he podido para hacerlo lo mas legible y sencillo posible, asi que es posible que encuentren por alli alguna variable no declarada o alguna funcion que no existe. Disculpen por el post tan largo.