Bonjour qui pourrai m aider avec ca svp.

1) Ayant défini le type

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
typedef struct dnoeud {
  int data;
  struct dnoeud* prev;
  struct dnoeud* next;
} dmaillon;

//programmer les fonctions suivantes (compléter le code; penser à les tester extensivement):


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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
void dempiler(dmaillon** teteref, int x);
{
 dmaillon* nouveau=malloc(sizeof(dmaillon));
 nouveau->data=x;
 nouveau->prev=nouveau;
 nouveau->next=nouveau;
 if (*teteref!=NULL)
  {
    /* ré-arranger les next et prev de nouveau et de *teteref
       afin d’insérer nouveau en tête d'une liste doublement chaînée
       et circulaire non-vide (dont la tête est pointée par *teteref)
    */
  } 
 *teteref=nouveau;
}
 
void denfiler(dmaillon** teteref, int x);
{
 dempiler(teteref, x); //rien à rajouter ici
}
 
int ddepiler(dmaillon** headRef)
{
  /*
   dépile d'une pile implémentée sous forme de
    liste doublement chaînée et circulaire, dont la tête
    est pointée par *teteref, et retourne l'entier 
    stocké au sommet de la pile; on
    suppose que dans la pile on stocke que des entiers >=0
   */
  if *headref==NULL {return -1;} else
   {
   }
}
 
 
int ddefiler(dmaillon** teteref)
{     
    /*
     défile d'une file implémentée sous forme de
     liste doublement chaînée et circulaire dont la tête
     est pointée par *teteref, et
     retourne l'entier stocké en fin de la file; on
     suppose que dans la file on stocke que des entiers >=0
    */
  if *headref==NULL {return -1;} else
   {
   }  
}
 
void dafficherliste(dmaillon* tete)
{
 /*affiche sur l'écran les entiers
   stockées dans une liste d. ch. et circ
   dont la tête est pointée par tete
 */
}
 
int dlongueur(dmaillon* tete)
{
 /*retourne le nombre de maillons d'une liste 
   d.ch. et circ dont la tête est pointée par tete
 */
}
 
int dcombien(dmaillon* tete, int x)
{
  /*
   retourne le nombre d'occurences de
   x dans la liste d. ch. et circ dont la tête
   est pointée par tete
  */
}
 
void dsupprimer(dmaillon** teteref, int x)
{
  /*
   supprime le dmaillon avec la première occurence de x,
   de la liste d. ch. circ dont la tête est
   pointée par *teteref ; si x n'est pas présent dans la liste,
   aucun effet
  */
}
 
 
 
2) Ayant défini le type
 
typedef struct noeudarbrebin {
 int data;
 struct noeudarbrebin* pere;
 struct noeudarbrebin* gauche;
 struct noeudarbrebin* droit;
} arbrebin;
 
//programmer
void ABR_supprimer(arbrebin** t, int k)
{
  /* 
    supprime k de l'ABR dont la racine est
    pointée par *t , n'a pas d'effet si k
    n'est pas stocké dans cet ABR
  */
}