CSC_41011 : Code poly (édition 2025)
Cette page donne accès au code Java apparaissant dans le
polycopié du cours CSC_41011.
Le code est volontairement peu (ou pas) commenté : les explications
détaillées se trouvent dans le poly.
Tout télécharger : code-csc-41011.zip
- Chapitre 3 : Tableaux
- Chapitre 4 : Listes chaînées
- Programme 4 (page 53) : Listes simplement chaînées
Singly.java
- Programme 5 (page 55) : Tirage aléatoire dans une liste
Singly.java
- Programme 6 (page 57) : Structure de pile
Stack.java
- Programme 7 (page 60) : Structure de file
Queue.java
- Programme 8 (page 62) : Algorithme de détection de cycle de Floyd
Singly.java
- Programme 9 (page 65) : Listes doublement chaînées
Doubly.java
- Programme 10 (page 67) : Le problème de Josephus
Josephus.java
- Chapitre 5 : Tables de hachage
- Chapitre 6 : Arbres
- Programme 12 (page 84) : Arbres binaires de recherche
BSTSet.java
- Programme 13/14 (page 86/91) : Arbres binaires de recherche équilibrés
AVLSet.java
- Programme 15 (page 92) : Structure d'ensemble réalisée avec un AVL
AVLSet.java
- Programme 16 (page 97) : Arbres de préfixes
Trie.java
- Chapitre 7 : Structures de données immuables
- Chapitre 8 : Files de priorité
- Programme 18 (page 113) : Structure de tas (dans un tableau)
IntHeap.java
- Programme 19 (page 116) : Structure de tas (arbre auto-équilibré)
IntSkewHeap.java
- Chapitre 9 : Classes disjointes
- Programme 20 (page 123) : Structure de classes disjointes (union-find)
UnionFind.java
- Chapitre 10 : Arithmétique
- Programme 21 (page 127) : Algorithme d'Euclide
Euclid.java
- Programme 22 (page 128) : Algorithme d'Euclide étendu
Euclid.java
- Programme 23 (page 129) : Exponentiation rapide
Expo.java
- Programme 24 (page 131) : Crible d'Ératosthène
Sieve.java
- Chapitre 11 : Programmation dynamique et mémoïsation
- Programme 25 (page 135) : Calcul de Fn par mémoïsation et par
programmation dynamique
Fib.java
- Programme 26 (page 140) : Le compte est bon
LeCompteEstBon.java
- Chapitre 12 : Rebroussement (backtracking)
- Programme 27 (page 144) : Résoudre le problème du Sudoku
Sudoku.java
- Programme 28 (page 148) : Le problème des N reines
Queens.java
- Programme 29 (page 151) : Le problème des N reines (dénombrement)
Queens.java
- Chapitre 13 : Tri
- Chapitre 14 : Compression de données
- Programme 34 (page 176) :
Algorithme de Huffman (structure d'arbre)
Huffman.java
- Programme 35 (page 177) :
Algorithme de Huffman (codage et décodage)
Huffman.java
- Chapitre 15 : Graphes (Définition et représentation)
- Programme 36 (page 184) :
Graphes orientés
représentés par une matrice d'adjacence
AdjMatrix.java
- Programme 37 (page 186) :
Graphes orientés
représentés par des « listes » d'adjacence
Graph.java
- Programme 38 (page 188) :
Graphes non orientés
Undirected.java
- Chapitre 16 : Graphes (Algorithmes élémentaires sur les graphes)
- Programme 39 (page 192) : Parcours en largeur
BFS.java
- Programme 40 (page 195) : Parcours en profondeur
DFS.java
- Programme 41 (page 197) : Ordre postfixe d'un Parcours en profondeur
PostOrder.java
- Programme 42 (page 202) : Algorithme de Dijkstra (plus court chemin)
Dijkstra.java
- Programme 43 (page 205) : Calcul des composantes connexes d’un
graphe non orienté
Undirected.java
- Programme 44 (page 207) : Calcul des composantes fortement
connexes d’un graphe orienté (algorithme de Kosaraju-Sharir)
KosarajuSharir.java
- Programme 45 (page 211) : Algorithme de Kruskal (arbre couvrant minimal)
Kruskal.java
retour à la page du cours