[Programación] Un problema de algoritmos II
Horacio Castellini
programacion@lugro.org.ar
Mon, 24 May 2004 19:44:58 -0300
Holas.... queridos programadores....
Tengo un problema que seguramente el algoritmo existe, si alguien conoce como
se llama o me dá una punta para resolverlo se lo agradesco... Porque estoy
confndido y no lo puedo obtimizar respecto de la memoria...
A ver... tengo dos listas enlazadas llamadas F[] y S[] donde la primera
guarda el nombre de personas y la segunda temas de conversación, como cadenas
de caracteres, el nombre de personas y temas con un 95,56% de probabilidad
están repetidos en cada lista. Ahora bien lo que intento hacer (asumiendo
capasidad de asignación dinámica, por lo tanto no me preocupo en definir
dimensión, etc...)
la dimensión de F y S es N, existen K1 temas distintos y K2 autores
distintos, el arreglo de cadenas G está compuesto de K2+1 columnas y K1
filas donde en la primera columna se guarda el tema y en las restantes el
autor, inicialmente todos los elementos de G son el puntero (char*)NULL. Si
el autor ya fue grabado no puede volver a grabarlo sobre el mismo tema.
Entonces se me ocurrió... algo como esto...
llamar_a Clonar(S,Q) // duplica la lista
llamar_a Clonar(F,T)
// elimina lineas repetidas y las ordena, llena los sobrantes con (char*)NULL
llamar_a Ordenar_Unificar(Q)
llamar_a Ordenar_Unificar(T)
k<-0
mientras Q[k]<>NULL hacer
para i<-0 hasta N hacer
si Q[k]=S[i] entonces
l<-0
mientras T[l]<>NULL hacer
si T[l]=F[i] y g[k,l]<>F[i] entonces
g[k,0]<-S[i]
g[k,l]<-F[i]
finsi
l<-l+1
finmientras
finsi
finpara
k<-k+1
finmientras
Pta: no me manden código en perl, que no conosco, en todo caso en awk....
Saludos Horacio.