-
-
Save ArgiesDario/da409828e81ef441186268b8ee3acd5f to your computer and use it in GitHub Desktop.
#include <stdio.h> | |
#include <stdlib.h> | |
typedef struct snodo{ //snodo es el nombre de la estructura | |
int valor; | |
struct snodo *sig; //El puntero siguiente para recorrer la lista enlazada | |
}tnodo; //tnodo es el tipo de dato para declarar la estructura | |
typedef tnodo *tpuntero; //Puntero al tipo de dato tnodo para no utilizar punteros de punteros | |
void insertarEnLista (tpuntero *cabeza, int e); | |
void imprimirLista (tpuntero cabeza); | |
void borrarLista (tpuntero *cabeza); | |
int main(){ | |
int e; | |
tpuntero cabeza; //Indica la cabeza de la lista enlazada, si la perdemos no podremos acceder a la lista | |
cabeza = NULL; //Se inicializa la cabeza como NULL ya que no hay ningun nodo cargado en la lista | |
printf("Ingrese elementos, -1 para terminar: "); | |
scanf("%d",&e); | |
while(e!=-1){ | |
insertarEnLista (&cabeza, e); | |
printf ("Ingresado correctamente"); | |
printf ("\n"); | |
printf("Ingrese elementos, -1 para terminar: "); | |
scanf("%d",&e); | |
} | |
printf ("\nSe imprime la lista cargada: "); | |
imprimirLista (cabeza); | |
printf ("\nSe borra la lista cargada\n"); | |
borrarLista (&cabeza); | |
printf ("\n"); | |
system ("PAUSE"); | |
return 0; | |
} | |
void insertarEnLista (tpuntero *cabeza, int e){ | |
tpuntero nuevo; //Creamos un nuevo nodo | |
nuevo = malloc(sizeof(tnodo)); //Utilizamos malloc para reservar memoria para ese nodo | |
nuevo->valor = e; //Le asignamos el valor ingresado por pantalla a ese nodo | |
nuevo->sig = *cabeza; //Le asignamos al siguiente el valor de cabeza | |
*cabeza = nuevo; //Cabeza pasa a ser el ultimo nodo agregado | |
} | |
void imprimirLista(tpuntero cabeza){ | |
while(cabeza != NULL){ //Mientras cabeza no sea NULL | |
printf("%4d",cabeza->valor); //Imprimimos el valor del nodo | |
cabeza = cabeza->sig; //Pasamos al siguiente nodo | |
} | |
} | |
void borrarLista(tpuntero *cabeza){ | |
tpuntero actual; //Puntero auxiliar para eliminar correctamente la lista | |
while(*cabeza != NULL){ //Mientras cabeza no sea NULL | |
actual = *cabeza; //Actual toma el valor de cabeza | |
*cabeza = (*cabeza)->sig; //Cabeza avanza 1 posicion en la lista | |
free(actual); //Se libera la memoria de la posicion de Actual (el primer nodo), y cabeza queda apuntando al que ahora es el primero | |
} | |
} |
P
Hola, alguien me puede decir como se puede aplicar digamos con personas, cunado el usuario pida su nombre, edad y si es hombre o mujer?
Y digamos que le prioridad a mujeres y/o adultos mayores???@EddyRocket386
En tu estructura debes de agregar los datos que necesitas, se más específico, ¿quieres llenar una lista para después pedirla?, ¿quieres que esté ordenada según el sexo y edad?
@Andrik-Ts-019
Bueno digamos que los datos que va a trabajar se pidan desde teclado, los cuales son los que mencionaba (nombre, edad, sexo) y hacerlo digamos que evalúe con una condicional, si la persona es mayor de edad lo mande al principio y recorra los demás.
@Andrik-Ts-019
Así es digamos es la idea y bueno si se agradecería lo del ejemplo si no es molestia lml
@Andrik-Ts-019
Al contrario, te agradezco el apoyo y orientación con tu material!!!
Hola, alguien me puede decir como se puede aplicar digamos con personas, cunado el usuario pida su nombre, edad y si es hombre o mujer?
Y digamos que le prioridad a mujeres y/o adultos mayores???