elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Buscar Ingresar Registrarse
29 Mayo 2012, 02:05  


Tema destacado: Únete al Grupo Steam elhacker.NET

+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General (Moderador: Littlehorse)
| | |-+  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 476 veces)
SXF

Desconectado Desconectado

Mensajes: 163



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

    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
void eliminar(nodo *cab,nodo *fin)
{    int num;
   cout<<"Dime el numero del libro a eliminar: "<<endl;
   cin>>num;
   nodo *temp2;
   temp2=cab;
   nodo *N;
 
    while(temp2 != NULL){
 
                        if (temp2->info==num){
 
                       nodo *aux;
                       aux=temp2; //Guardo la direccion del elemento buscado
 
                       temp2=temp2->sgt;  //Aqui creo que esta el problema
                       N=temp2;
 
                       delete aux;//Elimino el elemento (Libero el free store)
 
                       temp2=N;
 
                                                }
 
     temp2=temp2->sgt;
 
 
   }
 
}


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



http://www.facedit.es
-> Mi Web personal.
dakomt

Desconectado Desconectado

Mensajes: 76


Viking Metal


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

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: 163



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

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



http://www.facedit.es
-> Mi Web personal.
dakomt

Desconectado Desconectado

Mensajes: 76


Viking Metal


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

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 un programa en c++
Programación General
geekrave 2 489 Último mensaje 13 Noviembre 2004, 23:47
por Ragnarok
PROBLEMA CON UN PROGRAMA
Software
MIGUELPEÑA 4 507 Último mensaje 30 Junio 2006, 03:53
por mike1977
Problema, con programa->HELP PLZ
Programación Visual Basic
newbY 12 765 Último mensaje 22 Noviembre 2006, 18:15
por newbY
problema con programa de C
Programación C/C++
murdock_ 4 598 Último mensaje 12 Abril 2007, 15:58
por murdock_
Problema con un programa
Windows
JoseRa 6 580 Último mensaje 28 Marzo 2009, 23:16
por JoseRa
Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines