Translate

الاثنين، 2 ديسمبر 2013

tri liste chinèe


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

ليست هناك تعليقات:

إرسال تعليق