Bonjour, j'essaie de trier par ordre croissant une liste chainée. Voici mon code:
La structure:
1
2
3
4
5
typedef struct element
{
int val;
struct element *nxt;
}Element;
Ma fonction de création d’éléments:
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
void ajouterEnFin(Element *liste, int valeur)
{
Element* nouvelElement = malloc(sizeof(Element));
nouvelElement->val = valeur;
nouvelElement->nxt = NULL;
if(liste == NULL)
{
return nouvelElement;
}
else
{
Element* temp=liste;
while(temp->nxt != NULL)
{
temp = temp->nxt;
}
temp->nxt = nouvelElement;
//return liste;
}
}
Voici ma fonction de tri qui ne marche pas. J'ai écris ce code mais je ne sais pas trop ou aller, vos explications seront les bienvenues:
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
Element *trier_liste(Element *liste)
{
Element *tmp, *tmp1;
int swap;
int min;
tmp = malloc(sizeof(Element));
tmp1 = malloc(sizeof(Element));
if(liste == NULL)
{
return -1;
}
min = liste->val;
for(tmp = liste; tmp !=NULL; tmp=tmp->nxt)
{
for(tmp1=liste->nxt; tmp1 != NULL; tmp1=liste->nxt)
{
if(tmp->val < min)
{
swap = tmp->val;
tmp->val = min;
min = swap;
}
else
{
fin.
min = tmp->val;
}
}
}
}
Merci
f
ليست هناك تعليقات:
إرسال تعليق