Ce document a été produit par HEVEA.
Votre browser peut avoir a être configuré pour afficher correctement
certains symboles.
Reportez-vous à la documentation d'HEVEA.
i
et de p
avant exécution de la boucle for
. Qu'affiche le programme
? Quel est le contenu du tableau i
à la fin du programme ?
void f (int **i) { *(*i)++ += 1; } void main(void) { int i[5] = {0, 2, 4, 6, 8}, *p = i; f(&p); printf("%d %d\n", i[0], *p); }
char *(*d1[2])(int)
;
int (*d2(int (*d[])(int), int))(int)
;
Noeud
pour représenter un noeud dans une
liste, et un type ListeNoeud
pour représenter une liste de
noeuds. Proposer alors un type Graphe
pour représenter
un graphe. Proposer enfin un type Bool
pour représenter le
type booléen.
qui teste si la représentation G d'un graphe est cohérente. Une représentation d'un graphe est cohérente, si les listes des suivants et des précédents sont cohérentes.Bool Coherent(Graphe G) ;
qui teste si la relation associée à un grapheBool Transitif(Graphe G) ;
G
est
transitive [Un noeud a est en relation avec un
noeud b si et seulement si il existe une arête entre a et
b dans G. Une relation est transitive si a est en relation
avec b et b est en relation avec c, alors a est en
relation avec c.].
G
sous la forme d'une
matrice d'adjacence M
. M
est une matrice carrée
d'entiers, et un élément M[i][j]
différent de 0
indique qu'il y a une arête du noeud i
vers le noeud
j
. Écrire une fonction
qui convertit un grapheint *Convert(Graphe G) ;
G
en une matrice d'adjacence. La zone
contenant cette matrice sera allouée dynamiquement, et la fonction
Convert
retourne un pointeur sur son début.
Ce document a été traduit de LATEX par HEVEA.