crear una lista con el for...

mrpolo
23 de Julio del 2005
Hola a todos .. estoy empezando con estos de las estructuras de datos y tengo un problema con las listas enlazadas, quiero crear una lista con un incremento.. osea.. el nodo 1 vale 1 el nodo 2 vale 2 --- asi sucesivamente. entonces no se que hacer con los enlaces.. aqui tengo el codigo fuente para ver si me pueden ayudar.. porque el enlace siempre me lleva a NULL,,. gracias de antemano

#include<iostream.h>
#include<math.h>
#include<stdlib.h>
#include<process.h>
void main(){
struct elemento{
int dato;
elemento *siguiente;
};
int a, x;
elemento *primero, *nuevo=NULL;
nuevo=new elemento;
cout<<"Introduzca la cantidad de nodos ";
cin>>a;
x=(*nuevo).dato;
for(x=1;x<=a;x++){
(*nuevo).siguiente=NULL;
primero=nuevo;
cout << "Elemento A: " << x << endl;
cout << "Siguiente A: " << (*nuevo).siguiente << endl;
}
system("pause");
}

Caiman
23 de Julio del 2005
Bueno prueba con esto, no lo he probado pues lo cree aquí mismo:

#include <iostream>

using namespace std;

int main(void)
{
struct elemento
{
unsigned dato;
struct elemento *siguiente;
};

unsigned basura,nodos;
unsigned cont;
elemento *primero, *actual;

primero=new elemento;
actual=new elemento;

if(primero!=NULL && actual!=NULL)
{
cout<<"Introduce cuantos nodos quieres: ";
cin>>nodos;

primero->dato=1;
primero->siguiente=NULL;
actual=primero->siguiente;

for(cont=2;cont<nodos;cont++)
{
actual->dato=cont;
actual->siguiente=NULL;
actual=actual->siguiente;
}

cout<<"Dato 1: "<<primero->dato<<endl;
actual=primero->siguiente;

for(cont=2;cont<nodos;cont++)
{
cout<<"Dato "<<cont<<": "<<actual->dato;
actual=actual->siguiente;
}
}
else cout<<"Error al asignar la memoria.";
cout<<"Enter any key for exit ";
cin>>basura;
return(0);
}


mrpolo
23 de Julio del 2005
Gracias por tu ayuda pero compila bien y todo sin errores pero cuando uno inctroduce la cantidad de nodos me aparece una ventana de windows que el archivo .exe tiene problemas y debe cerrarse.
Gracias de todas formas amigo.. de ahi mas o menos me guio si tienes otras ideas no dudes en contestarme