Listas en c
Elsiguiente codigo es para que ingreses numeros, eligiendo la opcion en un menú
y mientras ingresas, puedes elegir ver la lista como se ve. sigue leyendo despues del codigo.
#include<iostream.h>
#include <stdlib.h>
#include <conio.h>
struct nodo{
int info;
nodo *sgt;
};
void agrega(nodo **cab, nodo **fin);
void muestra(nodo *cab);
int main()
{ nodo*c=NULL,*f=NULL; //puntero de cabecera, y puntero de fin de lista
int opcion;
do{
system("cls");
cout<<"1) Ingresa un dato (numero entero)."<<endl;
cout<<"2) Muestralos datos ingresados."<<endl;
cout<<"ingrese opcion"<<endl;
cin>>opcion;
switch(opcion){
case 0: exit(0);break;
case 1: agrega(&c, &f);break;
case 2: muestra(c);break;
}
}
while(opcion!=0);
system("PAUSE");
return 0;
}
void agrega(nodo **cab, nodo **fin){
int num;
cout<<"ingreseinformacion"<<endl;
cin>>num;
if((*cab)==NULL){
*cab = new nodo;
(*cab)->info =num;
(*cab)->sgt=NULL;
(*fin)=(*cab);
}else{
(*fin)->sgt=new nodo;
(*fin)->sgt->info=num;(*fin)=(*fin)->sgt;
(*fin)->sgt=NULL;
}
}
void muestra(nodo *cab){
cout<<"elementos en la lista"<<endl;
nodo* temp;
temp=cab;
while ( temp != NULL){cout<<temp->info<<" ";
temp=temp->sgt;
}
getche();
}
Bueno, para hacer listas enlazadas simples, solo creas un puntero de cabecera, en este caso llamado c, y uno de fin de lista, llamado fpara hacer la inserción mas rapida.
como ves, en la lista simple, tienes una estructura con un puntero sgt, que apunta al siguiente nodo.
en la lista doble, tendrás que crear otro campo, llamado...
Regístrate para leer el documento completo.