Уређивање једноструко спрегнуте листе¶
Уређивање садржаја листе може се радити на два начина:
премештањем садржаја чворова (слично уређивању низова) и
превезивањем чворова.
Најједноставније је премештање садржаја чворова. У примеру ћемо применити методу избора. Разлика је у томе што се уместо целобројних индекса користе показивачи на чворове.

Написати функцију за уређивање листе у опадајућем редоследу методом избора.
Решење:
void sortiraj(Lista *p)
{
Lista *i, *j;
int temp;
for (i = p; i != NULL; i = i -> sl_adresa)
for (j = p; j!= NULL; j = j -> sl_adresa)
if (j -> podatak < i -> podatak)
{
temp = i -> podatak;
i -> podatak = j-> podatak;
j -> podatak = temp;
}
}

Написати програм за унос, сортирање и испис једноструко спрегнуте листе од n целих бројева.
Решење:
#include<stdio.h>
#include<malloc.h>
typedef struct lista
{
int podatak;
struct lista *sl_adresa;
} Lista;
Lista *unos(int n);
void ispis(Lista *p);
void sortiraj(Lista *p);
main()
{
Lista *prvi, *novi;
int n;
novi = (Lista*)malloc(sizeof(Lista));
printf("Unesi broj elemenata: ");
scanf("%d", &n);
prvi = NULL;
prvi = unos(n);
printf("\nLista pre sortiranja\n");
ispis(prvi);
sortiraj(prvi);
printf("\nLista posle sortiranja\n");
ispis(prvi);
}
Излаз:
Unesi broj elemenata: 6
Unesi vrednost: -5
Unesi vrednost: 8
Unesi vrednost: 9
Unesi vrednost: 1
Unesi vrednost: -4
Unesi vrednost: 3
Lista pre sortiranja
-5 8 9 1 -4 3
Lista posle sortiranja
9 8 3 1 -4 -5