UTNianos

Versión completa: [APORTE] Ordenamiento dinámico de una lista
Actualmente estas viendo una versión simplificada de nuestro contenido. Ver la versión completa con el formato correcto.
Bueno gente, en esta oportunidad les dejo un programita básico que consta de ir pidiendo por consola valores numéricos e ir cargándolos en una lista.

¿Cual es el corazón de este ejercicio?

Algo que se pidió en varios finales:

Se tiene una lista desordenada; hay que jugar con punteros e ir ordenándola.

Yo me choque bastante la primera vez que hice esto, ya que lo común para mi era o ir agregando nodos ordenadamente en memoria, o ir extrayendo nodos de una lista desordenada e ir cargándolos de manera ordenada en otra lista nueva.

Por suerte un compañero consiguió estas pocas líneas de código (son 2 funciones cortísimas), con las cuales se logra el objetivo enunciado mas arriba.

Además bueno, tiene las funciones básicas que se usan cuando se trata de memoria dinámica (agregar al final, liberar recursos, etc) que para el que este empezando con el tema tal vez le sea mas fácil entender arrancando con algo sencillo como trabajar con una lista de números.

En fin, espero que les sirva tanto como a mí !
Muy buen codigo, pero me surgio una duda:

void insertar (struct nodo **inicio, struct nodo *act)
{
struct nodo **aux2;

aux2 = inicio;

while (*aux2 != NULL && (*aux2)->numero < act->numero)
aux2 = &((*aux2)->next);

act->next = *aux2;
*aux2 = act;

}

vos a insertar le pasas insertar(&aux,act), donde aux = NULL porq lo definis asi al inicio de la funcion ordenar, pero vos en la insertar cheqeas que *aux2 != NULL cuando siempre va a ser NULL porque aux2 = inicio e inicio es &aux que es el valor que le pasas para inicio en ordenar cuando llamas a la funcion insertar.
Estoy preparando el final para este miercoles y esto de ordenamiento sin crear otra lista me resulta un poco raro jaja, espero q me puedas aclarar la duda!
Muchas gracias!
Tomi
Excelente aporte, siempre se aprende algo nuevo, lo voy a tener presente para el final.
URLs de referencia