diff --git a/slides/cours_13.md b/slides/cours_13.md new file mode 100644 index 0000000000000000000000000000000000000000..c1edd14d447949e532506081d9355bdd0cf57cc2 --- /dev/null +++ b/slides/cours_13.md @@ -0,0 +1,76 @@ +--- +title: "Tables de hachage" +date: "2022-01-12" +patat: + eval: + tai: + command: fish + fragment: false + replace: true + ccc: + command: fish + fragment: false + replace: true + images: + backend: auto +... + +# Tableau vs Table + +Structures permettant de stocker une collection d'éléments du même type. + +## Tableau + +* Chaque élément (ou valeur) est lié à un indice (la case du tableau). + +```C +annuaire tab[2] = { + "+41 22 123 45 67", "+41 22 234 56 78", ... +}; +tab[1] == "+41 22 123 45 67"; +``` + +## Table + +* Chaque élément (ou valeur) est lié à une clé. + +```C +annuaire tab = { +// Clé , Valeur + "Paul", "+41 22 123 45 67", + "Orestis", "+41 22 234 56 78", +}; +tab["Paul"] == "+41 22 123 45 67"; +tab["Orestis"] == "+41 22 234 56 78"; +``` + +# Table + +## Définition + +Structure de données abstraite où chaque *valeur* (ou élément) est associée à une *clé* (ou +argument). + +On parle de paires *clé-valeur* (*key-value pairs*). + +## Donnez des exemples de telles paires + +. . . + +* Annuaire (nom-téléphone), +* Catalogue (objet-prix), +* Table de valeur fonctions (nombre-nombre), +* Index (nombre-page) +* ... + +# Table + +## Opérations principales sur les tables + +* Insertion d'élément (`insert(clé, valeur)`{.C}), insère la paire `clé-valeur` +* Consultation (`get(clé)`{.C}), retourne la `valeur` correspondant à `clé` +* Suppression (`remove(clé)`{.C}), supprime la paire `clé-valeur` + +## Structure de données + +