I'm practicing linked lists in c, what I want to do is save char elements in the nodes, I want to read those elements This is what I did, but I do not know how to read the elements while using a for cycle:
#include <stdio.h>
#include <stdlib.h>
#define CANT_NODOS 5
typedef struct Nodo{
char* elemento;
struct Nodo* siguiente; /*vinculo para unir mas nodos*/
}nodo;
//funcion que genera o crea una lista
nodo* ListaElementos(nodo* Lista){
Lista = NULL ;
return Lista;
}
// funcion que agrega nodos a la lista
nodo* agregarNodo (nodo* Lista, char* elemento){
nodo* nuevoNodo, *aux;
nuevoNodo = (nodo*) malloc (sizeof(nodo));
nuevoNodo -> elemento = elemento;
nuevoNodo -> siguiente = NULL;
if(Lista == NULL){
Lista = nuevoNodo;
}
else{
aux = Lista; //para no perder el elemento
while(aux->siguiente != NULL){
aux = aux -> siguiente;
}
aux-> siguiente = nuevoNodo;
}
return Lista;
}
//Funcion que libera la memoria
void LiberarLista (nodo* Lista ){
free (Lista);
}
nodo* Lista1;
nodo* Lista2;
nodo* nodoListas(nodo*Lista){
int i;
char prueba, *elemento;
printf("Cargar elemento: \n");
//for (i = 0; i< CANT_NODOS; i++){
//scanf ("%s", elemento);
Lista = agregarNodo (Lista, "aqui deberia ir lo leido1");
Lista = agregarNodo (Lista, "aqui deberia ir lo leido2");
Lista = agregarNodo (Lista, "aqui deberia ir lo leido3");
Lista = agregarNodo (Lista, "aqui deberia ir lo leido4");
Lista = agregarNodo (Lista, "aqui deberia ir lo leido5");
//}
}
int main(void){
Lista1 = ListaElementos(Lista1);
Lista2 = ListaElementos(Lista2);
Lista1 = nodoListas(Lista1);
//impresion Lista 1
while (Lista1 != NULL){
printf("%s\t", Lista1->elemento);
Lista1 = Lista1 -> siguiente;
}
return 0;
}
Any suggestions? ):