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;
registronuevo
= (_nodo
*) malloc(sizeof(_nodo
)); 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;
printf("Contenido de la lista: iniciolista-> ");
while (apuntadorauxiliar != NULL) {
printf("%d -> ",apuntadorauxiliar
->valor
); apuntadorauxiliar = apuntadorauxiliar->sig;
}
printf("%d",apuntadorauxiliar
);
}
int main() {
int op,nuevovalor;
_nodo *iniciolista;
bool listacreada = false;
while (op != 6) {
printf("\t****Programa que se usa para trabajar listas simples****\n\n"); printf("Elija una de las opciones: \n"); printf("1) Crear una lista.\n"); printf("2) Insertar un elemento\n"); printf("3) Eliminar un nodo\n"); printf("4) Imprimir la lista\n"); printf("5) Eliminar la lista\n");
switch(op) {
case 1:
if (listacreada == false) {
iniciolista = crearlista(iniciolista);
listacreada = true;
break;
} else {
printf("Error, la lista ya existe\n"); break;
}
case 2:
printf("Indique el valor a insertar en la lista: "); scanf("%d", &nuevovalor
);
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.