Bonjour, voici ce que j'ai fait mais sa ne marche pas, pouvez-vous m'aider svp ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
 
procedure separe (l, l1, l2 : liste);
var l3, l4 : Liste;
  debut
    vide(l3);
    vide(l4);
    tant que (l <> NIL) et (l^.suiv <> NIL) faire
      debut
      queue(l, l1, l3);
      queue(l, l2, l4);
      fin
    si l <> NIL alors
      queue(l, l1, l3);
  fin
 
 procedure fusion (var l, l3, l4 : Liste);
 var  l5 : Liste; 
  debut
    vide(l5);
    tq (l3 <> NIL) et (l4 <> NIL) faire
      si infegal(l3^.val, l4^.val) alors
        queue(l3, l, l5)
      sinon
        queue(l4, l, l5);
 
    si l3 <> NIL alors
      debut
      concat(l, l3);
      l := l3;
      l3 := NIL;
      fin
    sinon
      debut
      concat(l, l4);
      l := l4;
      l4 := NIL;
      fin
  fin
 
procedure tri (var l : Liste);
var l3, l4 : Liste;
debut
  si (l <> NIL) alors
    debut
    separe(l, l3, l4);
    tri(l3);
    tri(l4);
    fusion(l, l3, l4);
   fin
fin
Sachant que queue (l1, l2, l3) transfert la cellule repérée par l1 en queue de la liste repérée par l2 dont la queue est repérée par l3.
Merci d'avance