trabajando con listas

Iniciado por javier210186, 21 Octubre 2011, 05:18 AM

0 Miembros y 1 Visitante están viendo este tema.

javier210186

Cordial saludo, tengo que hacer  una lista  que reciba tres datos y los pueda visualizar, he tomado este ejemplo pero en vez de mostrar una cadena pueda mostrar una estructura así estudiante { Nombres, apellidos y edad}

Código (cpp) [Seleccionar]

#include <stdlib.h>
#include <iostream.h>
#include <conio.h>
#include <windows.h>
struct nodo {
       int dato;
       struct nodo *sig;
       }*l=NULL,*primero=NULL;
       
     
int main()
{
   system ("pause");
   
    int acumulador=0;
    int i;
    char vector[6];
    cout<<"IMPLEMENTACION DE UNA LISTA ENLAZADA\n\n";
    cout<<"Ingrese nombre\n";
    for(i=0;i<6;i++) {

                   cin>> vector[i];             
                   acumulador = acumulador + vector[i]; //ingresa datos a la lista
  }                 
                   
                   
for(i=0;i<6;i++){
cout<<"\nLa lista  es : "<<vector[i];                  //muestra los datos ingresados a la lista
}

for(i;i<6;i++) {
                primero=(struct nodo *)malloc(sizeof(struct nodo));  // reserva  memoria
                primero->dato=vector[i-1];
                primero->sig = l; l = primero;
                }
               
cout<<"\nLista creada. Presione una tecla ";
getch();
//cout<<"\nLa sumatoria de la lista es : " <<acumulador;
cout<<" \n";
while(l!=NULL) {
               cout<< l->dato; l=l->sig;
                }
free(primero);
getch();
return 0;
}


El  problema para mi es poder recibir la estructura estudiante  ingresando la a la lista,como insertarla en cualquier parte de la misma.

darkvidhack

Hola!! yo que tú lo que haría sería una clase Nodo y otra clase ListaEnlazada, en ListaEnlazada crearía dos atributos, dos punteros a objetos de tipo Nodo, uno cabecera, que apunte al primer nodo, y otro cola, que apunte al último nodo, a partir de ahí, la inserción en cada caso solo tienes que pensarla un poco dibujándola en papel por ejemplo, si tienes algún problema comentas ;)

Saludos
live and let die

la duda es la base de todo conocimiento