elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Estamos en la red social de Mastodon


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Problema con un programa
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Problema con un programa  (Leído 1,832 veces)
SXF

Desconectado Desconectado

Mensajes: 189



Ver Perfil WWW
Problema con un programa
« en: 16 Mayo 2011, 13:17 pm »

    Buenas pues la duda es la siguiente , intento eliminar un elemento de la lista , pero no lo consigo me tira un error de ejecucion.
    Si alguien me puede ayudar.

Código
  1. void eliminar(nodo *cab,nodo *fin)
  2. {    int num;
  3.    cout<<"Dime el numero del libro a eliminar: "<<endl;
  4.    cin>>num;
  5.    nodo *temp2;
  6.    temp2=cab;
  7.    nodo *N;
  8.  
  9.     while(temp2 != NULL){
  10.  
  11.                         if (temp2->info==num){
  12.  
  13.                        nodo *aux;
  14.                        aux=temp2; //Guardo la direccion del elemento buscado
  15.  
  16.                        temp2=temp2->sgt;  //Aqui creo que esta el problema
  17.                        N=temp2;
  18.  
  19.                        delete aux;//Elimino el elemento (Libero el free store)
  20.  
  21.                        temp2=N;
  22.  
  23.                                                 }
  24.  
  25.      temp2=temp2->sgt;
  26.  
  27.  
  28.    }
  29.  
  30. }


« Última modificación: 16 Mayo 2011, 13:28 pm por SXF » En línea

dakomt

Desconectado Desconectado

Mensajes: 76


Viking Metal


Ver Perfil
Re: Problema con un programa
« Respuesta #1 en: 27 Mayo 2011, 02:47 am »

vaya.. 10 días y nadie te ha contestado..  :-\    ¿llegaste a solucionarlo?

El algoritmo que planteas falla por todos lados  :-(

Cuando eliminas un nodo de una lista  enlazada (dinámica) tienes que tener en cuenta 5 casos

Salvo en el último donde no tienes que hacer nada (salvo recorrer tooooda la lista  :D) tienes que tener mucho cuidado con la actualización de los punteros y el orden en el que la hagas.

- La lista está vacia ---> cab == NULL

- El nodo a eliminar es el nodo cabecera. --> si la lista tiene mas de un elemento, el segundo pasa a ser el nodo cabecera.

- El nodo a eliminar es el último nodo de la lista. --> el penultimo ahora apuntara a NULL

- El caso general. El nodo a eliminar está dentro de la lista. --> el anterior tiene que apuntar ahora al siguiente (Es el único caso que contemplas pero las actualizaciones de los punteros y el orden están mal)

- No existe el nodo

etc etc.

Espero que lo solucionaras  ;D



En línea

SXF

Desconectado Desconectado

Mensajes: 189



Ver Perfil WWW
Re: Problema con un programa
« Respuesta #2 en: 27 Mayo 2011, 19:00 pm »

Gracias por ser el ùnico que se inclino por contestarne, no se que tiene la "Gente" contra mi jeje , no mentira. Despuès de mucho pensar y buscar  ya lo resolvì, gracias nuevamente. ;D
En línea

dakomt

Desconectado Desconectado

Mensajes: 76


Viking Metal


Ver Perfil
Re: Problema con un programa
« Respuesta #3 en: 28 Mayo 2011, 03:20 am »

me alegro entonces  ;)
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Problema, con programa->HELP PLZ « 1 2 »
Programación Visual Basic
newbY 12 4,439 Último mensaje 22 Noviembre 2006, 18:15 pm
por newbY
Problema programa VB
Programación Visual Basic
34Gl3 S1lV3R 2 2,142 Último mensaje 31 Enero 2008, 16:47 pm
por Chefito
Problema con un programa
Ingeniería Inversa
azazael 8 3,827 Último mensaje 4 Julio 2008, 10:23 am
por apuromafo CLS
Problema en mi programa (PIC)
Electrónica
laluchi 5 4,498 Último mensaje 30 Octubre 2008, 20:01 pm
por Meta
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines