Listas en c

Solo disponible en BuenasTareas
  • Páginas : 4 (833 palabras )
  • Descarga(s) : 0
  • Publicado : 23 de mayo de 2011
Leer documento completo
Vista previa del texto
ingresar 2 listas de numeros de 10 elementos(Simplemente enlazada).Crear una lista (doblemente enlazada con los valores intercalados de la lista anterior)imprimir la lista en ambos sentidos.

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...
tracking img