Tengo un ejercicio de parcial en el cual tengo que crear 2 listas. En una lista tengo que poner en cada nodo una palabra y la otra lista esta vacia.
Luego tengo que hacer una función que tome esas 2 listas y si la longitud de la palabra de cada nodo de la lista1 es mayor que 4, tengo que agregar la palabra de forma ordenada a la otra lista.
Entonces Como ejemplo:
Como condición del ejercicio tengo que crear la funcion filtrar_palabras que reciba las 2 listas y el entero limite. Si el limite es 4, entonces tengo que incluir en la 2da lista, todas las palabras que tengan longitud 4 o superior.
Lista original: "A" , "La", "Grande", "Le", "Puse", "Cuca".
Limite: 4;
Lista Modificada: "Cuca", "Grande", "Puse".
He intentado hacerlo y me tira error de ejecucion y nada. Hice un par de cambios pero lo maximo que llegaba era a ejecutar la lista original y cuando queria filtrar, tiraba error de ejecucion, ahora tira error en todo ..
Código
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <conio.h> struct s_nodo { char*txt; struct s_nodo*sig; }; typedef struct s_nodo* t_nodo; void AGREGAR(t_nodo*,char*); void filtrar_palabras(t_nodo,t_nodo*,int); void insertar_ordenado(t_nodo*,char*); void imprimir(t_nodo); int main() { t_nodo original=NULL; t_nodo filtrado=NULL; int limite=4; AGREGAR(&original,"a"); AGREGAR(&original,"la"); AGREGAR(&original,"grande"); AGREGAR(&original,"le"); AGREGAR(&original,"puse"); AGREGAR(&original,"Cuca"); imprimir(original); filtrar_palabras(original,&filtrado,limite); imprimir(filtrado); return 0; } void AGREGAR(t_nodo*nodo,char* palabra) { if(*nodo==NULL) { (*nodo)->sig=NULL; } else AGREGAR(&(*nodo)->sig,palabra); } void filtrar_palabras(t_nodo original,t_nodo*filtrado,int longitud) { while(original!=NULL) { { insertar_ordenado(filtrado,original->txt); } original=original->sig; } } void insertar_ordenado(t_nodo*nodo,char* txt) { t_nodo aux=NULL; { if(aux==NULL) { } aux->sig=*nodo; *nodo=aux; } else { insertar_ordenado(&(*nodo)->sig,txt); } } void imprimir(t_nodo nodo) { while(nodo!=NULL) { nodo=nodo->sig; } }