Algorithmique - Semestre d’Automne 2010/2011
ECOLE POLYTECHNIQUE F´´ ED ´ERALE DE LAUSANNE Sections d’Informatique et de Syst`emes de Communication
S´erie d’exercices 4 17 Octobre 2011
1. Matrices d’adjacence et listes d’adjacence
2 3
1 4
5
6 7
1
6 7
8
9
10 4
2
3 5
2 3
4
6 1
7
8 5
1
4
5
2 3
a) Pour chaque graphe ci-dessus, donnez la matrice d’adjacence et les listes d’adjacence.
b) Donner une interpr´etation de la somme des ´el´ements d’une ligne de la matrice d’adjacence d’un graphe.
c) Pour un graphe de la partie a) ci-dessus, ´elever sa matrice d’adjacence A au carr´e.
Quelle est la relation entre la (i, j)-`eme composante de A2 et le nombre de chemins de longueur 2 entre les sommets ietj? Justifier votre reponse.
2. Graphes
a) Si la premi`ere ligne de la matrice d’adjacence d’un graphe non orient´e G ne contient que des 1 alorsG est connexe. Vrai ou Faux? (Justifier.)
b) Dessiner un arbre binaire dans lequel tous les sommets ont degr´e 0 ou 2, mais qui n’est pas un arbre AVL.
c) Soit T un arbre binaire avec nsommets. Quelle est la plus petite hauteur que peut avoir T? Quel est la plus grande hauteur que peut avoir T?
d) SoitGun graphe non orient´e avecnsommets, et dans lequel tous les sommets ont degr´ed (un tel graphe est appel´ed-r´egulier). Nous supposons aussi que la diagonale de sa matrice d’adjacence ne contient que des 0.
Montrer que si nest impair alors ddoit ˆetre pair. (Indice: compter le nombre d’arˆetes.)
1
Algorithmique - Semestre d’Automne 2010/2011
3. Arbres AVL
Ajouter les ´el´ements suivants (dans l’ordre donn´e) dans un arbre AVL (initialement vide) de telle fa¸con qu’il reste AVL:
12,9,123,3,0,23,98,2,11,7 Dessiner l’arbre apr`es chaque insertion.
4. Hashing
Nous aimerions stocker des noms dans un tableau de hachage de taille 26. Pour le faire nous identifions les lettres de l’alphabet avec des nombres: A = 0,B = 1, . . . ,Z = 25. Nous avons le choix entre deux fonctions de hachage:
h1:{A, . . . ,Z}+ → {0, . . . ,25}
(a1, . . . , an)7→a1
eth2:{A, . . . ,Z}+ → {0, . . . ,25}
(a1, . . . , an)7→a1+a3 mod 26.
(Nous supposons que les noms sont assez longs pour que h2 soit d´efini.)
Voici la liste des noms `a traiter avec les valeurs des fonctionsh1 eth2 correspondantes:
Nom h1 h2 Nom h1 h2
Alfio 0 5 Jean-Marie 9 9
Amel 0 4 Joachim 9 9
Amin 0 8 John 9 16
Anthony 0 19 Jose 9 1
Antoine 0 19 Klaus-Dieter 10 10
Bernard 1 18 Manuel 12 25
Boris 1 18 Marco 12 3
Charles 2 2 Michel 12 14
Denis 3 16 Otto 14 7
Diego 3 7 Peter 15 8
Dominique 3 15 Philippe 15 23
Erik 4 12 Robert 17 18
Eva 4 4 Sacha 18 20
Gerard 6 23 Stephan 18 22
Hichem 7 9 Sylvain 18 3
Ian 8 21 Thomas 19 7
Jacques 9 11 Tudor 19 22
Jean-Fran¸cois 9 9
a) ´Ecrire les tables de hachage correspondant `a l’utilisation deh1 eth2 respectivement.
b) Est-ce que l’une des deux tables de hachage est meilleure que l’autre? En quel sens?
c) Est-ce que la diff´erence est due uniquement au hasard, ou voyez-vous une raison pour laquelle une des fonctions de hachage pourrait ˆetre pr´ef´erable `a l’autre pour stocker des pr´enoms?
2