Muchas gracias de antemano.
Código C:
Ver original
#include <stdio.h> #include <stdlib.h> typedef struct registro { int edad; struct registro *sig; } nodo; void crear(nodo **pointer) { (*pointer) = NULL; } void agregar(nodo **pointer, int x) { nodo *aux, *nuevo; aux = (*pointer); if (nuevo != NULL) { nuevo->edad = x; nuevo->sig = NULL; } if (*pointer == NULL) (*pointer) = nuevo; else { while(aux->sig != NULL) aux = aux->sig; aux->sig = nuevo; } } void imprimir(nodo **pointer) { nodo *aux; aux = (*pointer); if (aux != NULL) { while (aux != NULL) { aux = aux->sig; } } else } void sort(nodo **pointer) { nodo *aux, *aux2, *temp; int mayor = 0; aux = (*pointer); aux2 = aux; while (aux->sig != NULL) { while (aux2 != NULL) { if (aux2->edad >= mayor) mayor = aux2->edad; } aux2 = aux; while (aux2->sig != NULL) { if ((aux2->sig)->edad == mayor) { temp = (aux2->sig)->sig; (aux2->sig)->sig = aux; aux->sig = temp; } aux2 = aux2->sig; } aux = aux->sig; } } int main() { nodo *grupo; crear(&(grupo)); agregar(&(grupo), 15); imprimir(&(grupo)); agregar(&(grupo), 10); imprimir(&(grupo)); agregar(&(grupo), 55); imprimir(&(grupo)); agregar(&(grupo), 75); imprimir(&(grupo)); agregar(&(grupo), 25); imprimir(&(grupo)); agregar(&(grupo), 5); imprimir(&(grupo)); agregar(&(grupo), 35); imprimir(&(grupo)); sort(&(grupo)); imprimir(&(grupo)); return EXIT_SUCCESS; }