Approfondissement des notions de structures de données, algorithmes et programmation/Présentation du cours

Ce cours aborde les points suivants :

  • structures de données classiques ;
  • tables, adressage calculé, associatif, indexé, partagé, hachage ;
  • graphes orientés et non orientés, hypergraphes ;
  • algorithmes classiques de parcours (en profondeur et en largeur) dans les graphes ;
  • fermetures de relations binaires : algorithme de Warshall ;
  • recherche de plus court chemins : algorithmes de Dijkstra, Bellmann et Floyd ;
  • arbres binaires et généraux, forêts, dictionnaires, arbres équilibrés, arbres AVL, files de priorité, arbres quaternaires, B-arbres ;
  • algorithmes sur les arbres, arbres de recouvrement ;
  • algorithmes de tri interne et externe ;
  • optimalité et complexité des algorithmes de tri ;
  • introduction à la gestion de la mémoire et ramasse-miettes ;
  • implantations concrètes et programmation, par exemple en C, Java ou Ocaml.