Cours d'algorithmique et structures de données 2

Le cours

Voici un lien vers le pdf du cours : Cours. Ce pdf est encore en cours de d'écriture, il est donc modifié régulièrement, pensez à vérifier de temps en temps.

Semaine 1

Lors de cette première semaine (et peut-être un peu de la suivante), nous allons nous pencher sur les chapitres 1 et 2 du cours. Voici la feuille de TP correspondante : TP1

Ce premier TP n'est pas à rendre, le but est de vous familiariser avec le C++ sur des notions algorithmiques déjà abordées auparavant.

Semaine 2

Le but est de découvrir la bibliothèque algorithms fournie par la STL. Cette dernière définit des fonctions opérant sur des plages d'éléments qui permettent de les manipuler, de les trier, de rechercher un/des éléments... Voici la feuille de TP à réaliser : TP2.

Semaine 3

Nous allons cette semaine nous intéresser à la classe string de la STL. Voici la feuille de TP à réaliser : TP3.

Semaine 4&5

Les Graphes : TP4.

Semaine 6&7

Huffman : TP5.

Je vous propose que le squelette de classe suivant : Huffman_ptr.hpp. Ajouter le code nécessaire à faire fonctionner le main suivant : un main.

Semaine 8&9 : Autocomplétion

Dans cet exercice, nous allons développer puis utiliser une stucture appelée « trie ».

Vous créerez donc une classe Trie qui fera office de dictionnaire.
Il sera possible d'y ajouter des mots puis de récupérer efficacement ceux commençant par un préfixe donné.

Cette structure initialement vide sera basée sur un arbre dont on détiendra la racine.
Comme tous les autres nœuds de l'arbre, la racine tiendra à jour une liste de fils correspondant aux suffixes acceptés, chaque suffixe étant lui-même un arbre.
La structure grandira à mesure que l'on ajoutera de nouveaux mots à travers une méthode nommée ajouter qui acceptera un mot en guise de paramètre.

Pour coder la class Trie, vous aurez besoin d'une classe Noeud qui possèdera trois attributs :

Pour construire votre dictionnaire, vous pourrez utiliser cette liste de mots.

Il sera alors possible d'effectuer des recherches à l'aide de la méthode chercher.
Cette méthode acceptera comme paramètre le préfixe correspondant au début du mot saisi par l'utilisateur et elle fournira comme résultat la liste des suggestions compatibles.

Projets

En plus des travaux à rendre le long du semestre, l'évaluation se fait via des projets à rendre en fin de semestre.

Ici la liste des sujets proposés : projets.