3.2.2 Parcours des arbres binaires . . . . . . . . . . . . . . . . . . . . . . . . . . 27
3.2.3 Implantation d’arbres binaires . . . . . . . . . . . . . . . . . . . . . . . . 27
3.2.3.1 En statique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
3.2.3.2 En dynamique : repr´esentation chain´ee . . . . . . . . . . . . . . 28
3.3 Arbres planaires ou g´en´erales et forˆets . . . . . . . . . . . . . . . . . . . . . . . . 28
3.3.1 Transformation d’un arbre g´en´eral en arbre binaire . . . . . . . . . . . . . 29
3.3.2 Exploration d’un arbre g´en´eral . . . . . . . . . . . . . . . . . . . . . . . . 30
4 Les graphes et leurs algorithmes 31
4.1 Introduction....................................... 31
4.2 Graphe ......................................... 31
4.2.1 D´efinitions ................................... 31
4.2.2 Sp´ecification d’un graphe . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
4.3 Le probl´eme du Parcours des graphes en profondeur et propri´et´es . . . . . . . . 32
4.3.1 Parcours des graphes en profondeur et ses propri´et´es . . . . . . . . . . . 33
4.3.1.1 Principe................................ 33
4.3.1.2 M´ecanisme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
4.3.1.3 Propri´et´es . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
4.3.2 Parcours en Largeur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
4.3.2.1 Principe................................ 35
Remarque................................ 35
4.3.2.2 M´ecanisme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
4.4 Sp´ecification physique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
4.4.1 Repr´esentation contigu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
4.5 Principaux algorithmes pour les graphes . . . . . . . . . . . . . . . . . . . . . . . 36
4.5.1 Chemins de poids maximal-minimal- . . . . . . . . . . . . . . . . . . . . . 36
4.5.1.1 Technique de relaxation . . . . . . . . . . . . . . . . . . . . . . . 36
4.5.1.2 Algorithme de Dijkstra . . . . . . . . . . . . . . . . . . . . . . . 37
4.5.1.3 Algorithme de Bellman-Ford . . . . . . . . . . . . . . . . . . . . 37
4.5.1.4 Algorithme de Floyd-Warshall . . . . . . . . . . . . . . . . . . . 38
4.5.1.5 Algorithme Johnson . . . . . . . . . . . . . . . . . . . . . . . . . 39
4.5.1.6 Algorithme de Roy-Warshall . . . . . . . . . . . . . . . . . . . . 40
II Structuration 43
5 La r´ecursivit´e 45
5.1 Introduction....................................... 45
5.2 Algorithme r´ecursif . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
5.3 Comment construire un algorithme r´ecursif ? . . . . . . . . . . . . . . . . . . . . 47
5.4 Lad´er´ecursion ..................................... 48
5.4.1 Motivation La d´er´ecursion . . . . . . . . . . . . . . . . . . . . . . . . . . 48
5.4.2 R´egles pratiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
5.4.3 Traduction des appels r´ecursifs . . . . . . . . . . . . . . . . . . . . . . . . 48
5.4.4 Traduction du retour . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
5.4.5 Casg´en´eral................................... 49
5.4.5.1 Un seul appel . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
5.4.5.2 Deux appels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
6 Echappement et gestion des erreurs par exception 53
4