CSC_41011 : Code poly (édition 2024)
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 51) : Listes simplement chaînées
Singly.java
- Programme 5 (page 53) : Tirage aléatoire dans une liste
Singly.java
- Programme 6 (page 55) : Structure de pile
Stack.java
- Programme 7 (page 58) : Structure de file
Queue.java
- Programme 8 (page 60) : Algorithme de détection de cycle de Floyd
Singly.java
- Programme 9 (page 63) : Listes doublement chaînées
Doubly.java
- Programme 10 (page 65) : Le problème de Josephus
Josephus.java
- Chapitre 5 : Tables de hachage
- Chapitre 6 : Arbres
- Programme 12 (page 82) : Arbres binaires de recherche
BSTSet.java
- Programme 13/14 (page 84/89) : Arbres binaires de recherche équilibrés
AVLSet.java
- Programme 15 (page 90) : Structure d'ensemble réalisée avec un AVL
AVLSet.java
- Programme 16 (page 95) : Arbres de préfixes
Trie.java
- Chapitre 7 : Structures de données immuables
- Chapitre 8 : Files de priorité
- Programme 18 (page 111) : Structure de tas (dans un tableau)
IntHeap.java
- Programme 19 (page 114) : Structure de tas (arbre auto-équilibré)
IntSkewHeap.java
- Chapitre 9 : Classes disjointes
- Programme 20 (page 121) : Structure de classes disjointes (union-find)
UnionFind.java
- Chapitre 10 : Arithmétique
- Programme 21 (page 125) : Algorithme d'Euclide
Euclid.java
- Programme 22 (page 126) : Algorithme d'Euclide étendu
Euclid.java
- Programme 23 (page 127) : Exponentiation rapide
Expo.java
- Programme 24 (page 129) : Crible d'Ératosthène
Sieve.java
- Chapitre 11 : Programmation dynamique et mémoïsation
- Programme 25 (page 133) : Calcul de Fn par mémoïsation et par
programmation dynamique
Fib.java
- Programme 26 (page 138) : Le compte est bon
LeCompteEstBon.java
- Chapitre 12 : Rebroussement (backtracking)
- Programme 27 (page 142) : Résoudre le problème du Sudoku
Sudoku.java
- Programme 28 (page 145) : Le problème des N reines
Queens.java
- Programme 29 (page 148) : Le problème des N reines (dénombrement)
Queens.java
- Chapitre 13 : Tri
- Chapitre 14 : Compression de données
- Programme 34 (page 170) :
Algorithme de Huffman (structure d'arbre)
Huffman.java
- Programme 35 (page 171) :
Algorithme de Huffman (codage et décodage)
Huffman.java
- Chapitre 15 : Graphes (Définition et représentation)
- Programme 36 (page 178) :
Graphes orientés
représentés par une matrice d'adjacence
AdjMatrix.java
- Programme 37 (page 180) :
Graphes orientés
représentés par des « listes » d'adjacence
Graph.java
- Programme 38 (page 182) :
Graphes non orientés
Undirected.java
- Chapitre 16 : Graphes (Algorithmes élémentaires sur les graphes)
- Programme 39 (page 186) : Parcours en largeur
BFS.java
- Programme 40 (page 189) : Parcours en profondeur
DFS.java
- Programme 41 (page 191) : Ordre postfixe d'un Parcours en profondeur
PostOrder.java
- Programme 42 (page 196) : Algorithme de Dijkstra (plus court chemin)
Dijkstra.java
- Programme 43 (page 199) : Calcul des composantes connexes d’un
graphe non orienté
Undirected.java
- Programme 44 (page 201) : Calcul des composantes fortement
connexes d’un graphe orienté (algorithme de Kosaraju-Sharir)
KosarajuSharir.java
- Programme 45 (page 205) : Algorithme de Kruskal (arbre couvrant minimal)
Kruskal.java
retour à la page du cours