/* AGS 3.39 */ (a) int getLeast(LPtr *list){ int min = (*list)->eintrag; LPtr *tempP = list; LPtr temp = *list; while (temp->next != NULL) { if (min > temp->next->eintrag) { min = temp->next->eintrag; tempP = &(temp->next); } temp = temp->next; } *tempP = (*tempP)->next; return min; } (b) LPtr sort(LPtr list) { LPtr *last = NULL, head; while (list != NULL) { LPtr temp = (LPtr) malloc(sizeof(listtype)); temp->eintrag = getLeast(&list); temp->next = NULL; if (last != NULL) *last = temp; else head = temp; last = &(temp->next); } return head; }