16-12-2010, 11:10
Hola a todos,
les hago una consulta:
En un final que estoy planteando tengo que recorrer una lista con posiciones de equipos de futbol en base a su puntaje, entonces cuando consigo el nodo que tiene el valor maximo de puntaje tengo que sacarlo de la lista y mostrar por pantalla su puntaje, entre otras cosas.Yo lo plantee de una forma pero tengo serias dudas y prefiero ver si alguien me puede dar una mano.
Lo que venia haciendo es asignar a un puntero L la lista,
e ir moviendome con ese puntero.
Entonces en un while, mientras L es distinto de nil, pregunto si L^.info.pje > max, opero como corresponda, y me muevo al siguiente de la lista asignandole a L, L^.sgte.
Ahora bien, de esta manera al terminar la primer recorrida y tener el maximo puntaje, lo saco de la lista y lo muestro, pero no estaria volviendo a recorrer la lista para sacar al segundo, tercero, etc..
Entonces agregué otro puntero P, y un ciclo while interno, en el cual voy a operar con el puntaje maximo, y voy a avanzar al siguiente hasta llegar al final de la lista.
De esta forma me moveria con el puntero P, llegaria al final, moveria el puntero L al siguiente nodo, volveria a moverme con P hasta el final, y asi sucesivamente hasta que la lista quede sin nodos.
En resumen, queria saber si no me estoy mandando un moco gigante operando con tantos punteros, intentando emular la busqueda de maximos en un vector.
Muchas gracias de antemano,
Saludos
les hago una consulta:
En un final que estoy planteando tengo que recorrer una lista con posiciones de equipos de futbol en base a su puntaje, entonces cuando consigo el nodo que tiene el valor maximo de puntaje tengo que sacarlo de la lista y mostrar por pantalla su puntaje, entre otras cosas.Yo lo plantee de una forma pero tengo serias dudas y prefiero ver si alguien me puede dar una mano.
Lo que venia haciendo es asignar a un puntero L la lista,
e ir moviendome con ese puntero.
Entonces en un while, mientras L es distinto de nil, pregunto si L^.info.pje > max, opero como corresponda, y me muevo al siguiente de la lista asignandole a L, L^.sgte.
Ahora bien, de esta manera al terminar la primer recorrida y tener el maximo puntaje, lo saco de la lista y lo muestro, pero no estaria volviendo a recorrer la lista para sacar al segundo, tercero, etc..
Entonces agregué otro puntero P, y un ciclo while interno, en el cual voy a operar con el puntaje maximo, y voy a avanzar al siguiente hasta llegar al final de la lista.
De esta forma me moveria con el puntero P, llegaria al final, moveria el puntero L al siguiente nodo, volveria a moverme con P hasta el final, y asi sucesivamente hasta que la lista quede sin nodos.
En resumen, queria saber si no me estoy mandando un moco gigante operando con tantos punteros, intentando emular la busqueda de maximos en un vector.
Muchas gracias de antemano,
Saludos