Skip to content

dylan-manseri/algorithms-and-data-structures-c

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

41 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Algorithmique et structures de données — Travaux pratiques

Langage Build Niveau

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.


Sommaire

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

Notions abordées

  • 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

Compilation et exécution

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

Organisation type d'un TP

<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

Objectif pédagogique

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.


Auteur

Dylan Manseri — Licence Informatique

About

Implémentations from scratch en C de structures de données (listes, arbres, tas, graphes) et d'algorithmes classiques : tris, plus courts chemins (Dijkstra, Bellman-Ford), flots (Ford-Fulkerson), ACM (Prim, Kruskal).

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors