1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
| #include <stdio.h>
#include <stdlib.h>
// element seznama
struct element {
int vrednost;
struct element *naslednji;
};
// zacetek seznama
struct element *zacetek;
// dodajanje elementa na "pravo mesto"
void dodajU(int x) {
// kazalec na nov element
struct element *nov;
// pomozni kazalec za sprehod
struct element *tmp;
// rezerviram prostor v pomnilniku in zapisem vrednost
nov=(struct element *) malloc (sizeof(struct element));
nov -> vrednost = x;
if ((zacetek==NULL) || (zacetek->vrednost > x)) {
// vstavimo na zacetek seznama
nov->naslednji = zacetek;
zacetek = nov;
} else {
// najprej poiscemo pravo mesto ...
tmp = zacetek;
while ((tmp->naslednji != NULL) &&
(tmp->naslednji->vrednost < x))
tmp = tmp -> naslednji;
// ... nato nov element vrinemo v verigo
nov -> naslednji = tmp -> naslednji;
tmp -> naslednji = nov;
}
}
// izpisemo element seznama
void izpisi() {
struct element *tmp;
tmp = zacetek;
// sprehodimo se po vsem seznamu
while (tmp != NULL) {
printf("%d ", tmp->vrednost);
tmp = tmp->naslednji;
}
printf("\n");
}
main() {
// na zacetku ustvarim prazen seznam
zacetek = NULL;
// dodam elemente ...
dodajU(2);dodajU(7);dodajU(3);
dodajU(1);dodajU(15);dodajU(5);
// ... in seznam izpisem
izpisi();
}
|