Ver Mensaje Individual
  #26 (permalink)  
Antiguo 01/08/2013, 13:10
vosk
 
Fecha de Ingreso: agosto-2012
Mensajes: 601
Antigüedad: 11 años, 8 meses
Puntos: 83
Respuesta: Guia_Listas_Enlazadas - C++

"...1. ¿Qué estoy omitiendo en este código?..."

Cuando vas a eliminar un nodo no tienes que reservar memoria para nada, toda la memoria que necesitas ya existe, y lo mismo sucede cuando vas a buscar un nodo; revisa tus apuntes para saber que es una perdida de memoria (memory leak) y para ver que efectos tiene en tu funcion de eliminar:

Código C:
Ver original
  1. nodo *anterior;//puntero no inicializado
  2. anterior= new nodo();//reserva dinamica de memoria
  3. anterior = buscarLista(apunt->dato);//perdida de memoria


"...El profesor nos recomienda que "Busquemos" el nodo que vamos a eliminar con la función "BuscarLista()". ¿La estoy usando bien?..."

Dos cosas: ¿quien ha escrito esa funcion? y ¿has echo alguna prueba con la funcion de buscar en la lista? Si entro la lista 3,5,7,9 y busco el nodo 5 me retorna 7, si busco el nodo 3 me retorna 7, si busco 1000 me retorna 7, etc


"...También hay que evitar que se ingresen nodos repetidos..."

Es tan simple como parece: pides un dato, lo buscas, si no existe lo añades.

Para que todo esto te resulte mas facil aun y para que puedes crear un codigo amigable te sugiero otra vez que revises las ideas de la POO: la clase Lsec es un manejador de listas, puede agregar datos, eliminar, buscar, pero no puede preguntar al usuario. Los bucles while(resp=='s') no deben formar parte de la clase (al menos no de Lsec o como minimo no deben formar parte de la funcion eliminar: la funcion 'eliminar' elimina, la funcion 'buscar' busca, y la funcion 'preguntar' pregunta, cada cosa se dedica a lo suyo). Con esto obtendras un codigo claro y podras identificar rapidamente los errores.


"... ¿Qué curso de Video-tutorial..."

No he visto nunca ningun videotutorial, no puedo recomendarte ninguno. Una busqueda rapida de <0.2s en google me ha dado esta http://cslibrary.stanford.edu/103/ entrada en 5ª posicion; seguro que en cualquier buscador de torrents encontraras libros escaneados en pdf que te seran de major ayuda, o el la biblioteca de tu facultad tambien tendras disponibles no solo libros sino tambien apuntes, no?

Otra cosa, la funcion de entrada 'main' en el estandar del 99 se define de tipo entero, y como tal debe retornar un entero (no voy a profundizar sobre esto ni si el compilador en c++ adapta el void main a entero y hace que retorne 0 por defecto o lo que sea, tampoco se muy bien como lo hace ni si el resultado es fiable). Por defecto retornará 0, o en caso de error un codigo de identificacion del error (esto sirve para cuando una aplicacion lanza a otra para que haga algo, si lo hace mal o no puede completar se descarta la operacion).

Otra, la libreria conio no es estandar y solo la usas para el getch, incluye la stdio y usa getchar.

Aun otra cosa, en la frase "El nodo ha eliminar no existe" la proposicion 'a' va sin 'h', ('ha' con 'h' es la 3ª p. del presente del verbo 'haber').

Saludos
vosk

Última edición por vosk; 01/08/2013 a las 13:23