Código C:
Ver original
#include <stdio.h> #include <stdlib.h> struct registro { int valor; struct registro *sig; }; typedef struct registro _nodo; _nodo *crearlista(_nodo* apuntador) { return (apuntador = NULL); } _nodo *insertarenlista(int x, _nodo *apuntador){ _nodo *registronuevo; _nodo *apuntadorauxiliar; if (registronuevo != NULL) { registronuevo->valor = x; registronuevo->sig = NULL; if (apuntador== NULL) { apuntador = registronuevo; } else { apuntadorauxiliar = apuntador; while (apuntadorauxiliar->sig != NULL) { apuntadorauxiliar = apuntadorauxiliar->sig; apuntadorauxiliar->sig = registronuevo; } } } return apuntador; } void imprimirlista(_nodo *apuntador) { _nodo *apuntadorauxiliar; apuntadorauxiliar = apuntador; while (apuntadorauxiliar != NULL) { apuntadorauxiliar = apuntadorauxiliar->sig; } } int main() { int op,nuevovalor; _nodo *iniciolista; bool listacreada = false; while (op != 6) { switch(op) { case 1: if (listacreada == false) { iniciolista = crearlista(iniciolista); listacreada = true; break; } else { break; } case 2: iniciolista = insertarenlista(nuevovalor, iniciolista); break; case 3: break; case 4: imprimirlista(iniciolista); break; case 5: break; case 6: op = 6; } } return 0; }
Me he hecho un programa que debería crearme una lista, añadir elementos, eliminarlos etc... Aun me falta la parte de eliminar, pero estoy teniendo problemas a la hora de eliminar...
Osea creo que el problema esta en los condicionales de insertar elementos.
La cosa deberia ir asi: inicio lista -> null
Insertar 5: iniciolista -> 5 - >null
insertar 10: iniciolista -> 5 -> 10 - > null
Pero inserto el 5 e inserto el 10 y al imprimir solo me muestra iniciolista -> 5 - > null.
No puedo insertar mas elementos, que podría estar pasando? aca una foto de la salida.