• Viernes 8 de Noviembre de 2024, 20:54

Autor Tema:  Listas Enlazadas  (Leído 2032 veces)

l2ebelde

  • Nuevo Miembro
  • *
  • Mensajes: 13
    • Ver Perfil
Listas Enlazadas
« en: Miércoles 28 de Marzo de 2007, 19:31 »
0
Quisiera saber si alguien me puede ayudar a convertir este codigo de lista enlazada simple a circular...

aqui va el codigo:
Código: Text
  1. //Muestra del funcionamiento de las listas enlazadas
  2. #include <stdio.h>
  3. #include <stdlib.h>
  4. #include <conio.h>
  5. #include <iostream.h>
  6.  
  7. void insertar(int n);
  8. int borrar(int p);
  9. void mostrar();
  10.  
  11. struct Tnodo
  12. {  int n;//Informaci¢n del nodo
  13.   Tnodo *sig;//Apunta al siguiente nodo
  14. } *ini, *fin; //Inicio y fin de la lista
  15.  
  16. int main()
  17. {  clrscr();
  18.   insertar(6);
  19.   insertar(3);
  20.   insertar(9);
  21.   borrar(3);
  22.   mostrar();
  23.  
  24.   return 0;
  25. }
  26.  
  27. void insertar(int n)
  28. {  Tnodo *aux=new Tnodo;
  29.   if(aux!=NULL)
  30.   {  //Guarda el valor en el nodo
  31.     aux->n=n;
  32.     //Si no hay elementos (Est  vac¡a)
  33.     if(ini==NULL)
  34.     {  //El inicio es el nuevo nodo
  35.       ini=aux;
  36.     }
  37.     else//Mete al final, el nuevo nodo
  38.       fin->sig=aux;
  39.     //Ahora el fin, es el que se acaba de insertar
  40.     fin=aux;
  41.     //Despues del fin, apunta a nulo
  42.     fin->sig=NULL;
  43.   }
  44. }
  45.  
  46. int borrar(int valor)
  47. {  Tnodo *actual;
  48.   //Lo busca en la primera posicion
  49.   if(ini->n == valor)
  50.   {  ini=ini->sig;//Inicio es otro
  51.     return valor;//Regresa el valor
  52.   }
  53.   //BUSCA EL VALOR PARA BORRARLO
  54.   actual=ini;
  55.   //Mientras el siguiente no sea el valor buscado
  56.   //  y no se haya llegado al fin de la lista
  57.   while(actual->sig->n!=valor && actual!=NULL)
  58.     actual=actual->sig;
  59.   //Si encontr¢ el valor buscado
  60.   if(actual!=NULL)
  61.   {  //Enlaza el actual con el siguiente del valor encontrado
  62.     actual->sig=actual->sig->sig;
  63.     return valor;
  64.   }
  65.   else//No lo encontr¢
  66.     return -1;
  67. }
  68.  
  69. void mostrar()
  70. {  Tnodo *actual = ini;
  71.   cout << "Los elementos ingresados son: " << endl;
  72.   while(actual!=NULL)
  73.   {  cout << actual->n <<" ";
  74.     actual=actual->sig;
  75.   }
  76. }
  77.  
l2ebelde

JuanK

  • Miembro de ORO
  • ******
  • Mensajes: 5393
  • Nacionalidad: co
    • Ver Perfil
    • http://juank.io
Re: Listas Enlazadas
« Respuesta #1 en: Miércoles 28 de Marzo de 2007, 20:06 »
0
creo que cualquiera acá lo puede hacer.

el punto es:

Por que no lo has podido hacer tu?
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io

RoChIsA

  • Nuevo Miembro
  • *
  • Mensajes: 5
    • Ver Perfil
Re: Listas Enlazadas
« Respuesta #2 en: Miércoles 28 de Marzo de 2007, 20:47 »
0
Por que soy principiante...

JuanK

  • Miembro de ORO
  • ******
  • Mensajes: 5393
  • Nacionalidad: co
    • Ver Perfil
    • http://juank.io
Re: Listas Enlazadas
« Respuesta #3 en: Miércoles 28 de Marzo de 2007, 20:54 »
0
ok, tonces nua sugerencia para que la tengas en cuenta en adelante:

las dudas deben ser puntuales sino parecerá que quieres que otros hagan el trabajo por ti.

Que dudas acerca de la implementación tienes? sabes que es una lista circular y que es una lista enlazada?

Que errores tienes ?

Dudas puntuales, y así obtendrás mas y mejor ayuda.
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io

loki160685

  • Miembro activo
  • **
  • Mensajes: 58
    • Ver Perfil
Re: Listas Enlazadas
« Respuesta #4 en: Jueves 29 de Marzo de 2007, 03:23 »
0
Primero que nada te recomiendo que leas algun libro de C++ y con respecto a tu duda lo que tienes que hacer al insertar es que el ultimo nodo apunte a la raiz y al eliminar que el nodo anterior apunte al nodo actual (el que se quiere eliminar) en su parte siguiente, liberar la memoria del nodo que quieres eliminar y problema resuelto.

mamex

  • Miembro activo
  • **
  • Mensajes: 77
  • Nacionalidad: mx
    • Ver Perfil
Re: Listas Enlazadas
« Respuesta #5 en: Viernes 30 de Marzo de 2007, 02:01 »
0
mmmm, y ademas yo soy el autor de ese codigo.

 :rolleyes:

lencho

  • Miembro de PLATA
  • *****
  • Mensajes: 1076
    • Ver Perfil
Re: Listas Enlazadas
« Respuesta #6 en: Viernes 30 de Marzo de 2007, 03:07 »
0
Cita de: "mamex"
mmmm, y ademas yo soy el autor de ese codigo.

 :rolleyes:
 :o  :o  :o , que pena  :lol:  :lol:  :lol:

pero ni modo, este es el mundo de la pirateria de codigo :devil:  :devil:  :devil:

Todos compartimos

BYTE.
______________________________________________________________________________________
"No estoy de acuerdo con lo que dices, pero defenderé con mi vida tu derecho a expresarlo"

l2ebelde

  • Nuevo Miembro
  • *
  • Mensajes: 13
    • Ver Perfil
Re: Listas Enlazadas
« Respuesta #7 en: Lunes 2 de Abril de 2007, 19:58 »
0
en algun momento dije que el codigo era mio???
l2ebelde