Ce dépôt regroupe l'ensemble des travaux pratiques réalisés en Licence Informatique
autour de l'algorithmique, des structures de données fondamentales et des graphes.
Chaque dossier correspond à un thème distinct et contient son propre CMakeLists.txt
afin d'être compilé de manière autonome.
| Dossier | Thème | Notions clés |
|---|---|---|
listes/ |
Listes chaînées | Simples, circulaires, doublement chaînées |
listes/listes-chainees/ |
— simples | Cellules, primitives, manipulation par tête |
listes/listes-circulaires/ |
— circulaires | Représentations LC et LCTQ (tête/queue) |
listes/listes-doublement-chainees/ |
— doublement chaînées | Polynômes, insertion triée, dérivée, somme |
arbres/ |
Arbres | Binaires, parfaits, tas |
arbres/arbres-binaires/ |
— binaires | Parcours, arbres d'expression, pile |
arbres/arbres-parfaits-et-tas/ |
— parfaits & tas | File de priorité, structure tableau |
fonctions-en-parametre/ |
Fonctions en paramètre | Pointeurs de fonction, tri fusion générique |
tris/ |
Algorithmes de tri | Sélection, insertion, fusion, rapide |
graphes/ |
Graphes & optimisation | Parcours, plus court chemin, flots, ACM |
- Structures de données : listes chaînées (simples, circulaires, doublement chaînées), piles, arbres binaires, arbres parfaits, tas, graphes (matrice d'adjacence, liste d'adjacence)
- Algorithmes de tri : tri par sélection, par insertion, fusion, rapide
- Parcours d'arbres : préfixe, infixe, postfixe, en largeur
- Algorithmes sur graphes :
- Parcours en largeur (BFS) et en profondeur (DFS)
- Plus courts chemins : Dijkstra, Bellman-Ford, Floyd-Warshall
- Problèmes de flots : Ford-Fulkerson
- Arbres couvrants de poids minimal : Prim, Kruskal
- Récursivité et fonctions de haut niveau
Chaque TP est un projet CMake indépendant. Pour compiler l'un d'entre eux :
cd <nom-du-dossier>
cmake -S . -B build
cmake --build build
./build/<nom-de-l-executable>Exemple — compiler et exécuter le TP sur les graphes :
cd graphes
cmake -S . -B build
cmake --build build
./build/graphes<theme>/
├── CMakeLists.txt Configuration de build
├── README.md Description du TP
├── include/ En-têtes (.h)
├── utils/ Fonctions transverses
└── TDx/ Sous-dossiers par séance
Renforcer la compréhension des mécanismes algorithmiques et développer une logique de résolution structurée à travers une implémentation from scratch des structures de données et algorithmes classiques en langage C.
Dylan Manseri — Licence Informatique