diff --git a/slides/cours_14.md b/slides/cours_14.md index f465b354bbb1f9d3f3cb92e1f53eb0119218c6fb..6815c01ad3d587b3638e3fe13b48881f26609fc2 100644 --- a/slides/cours_14.md +++ b/slides/cours_14.md @@ -39,17 +39,22 @@ $$ # Préambule +\small + * On considère pas le cas du chaînage en cas de collisions. * L'insertion est construite avec une forme du type ```C index = h(key); - while (table[index].state == OCCUPIED && table[index].key != key) { + while (table[index].state == OCCUPIED + && table[index].key != key) { index = (index + k) % table_size; // attention à pas dépasser } table[index].key = key; table[index].state = OCCUPIED; ``` +\normalsize + * Gestion de l'état d'une case *explicite* ```C @@ -65,11 +70,13 @@ $$ ```C insert(table, key, value) { index = hash de la clé; - index = si "index" est déjà occupé et la clé correspondante est pas "key" - gérer la collision; + index = + si "index" est déjà "occupé" + et la clé correspondante n'est pas "key" + alors gérer la collision; - changer l'état de la case à "index" à occupé; - changer la valeur de la case "index" à value; + changer l'état de la case "index" à "occupé"; + changer la valeur de la case "index" à "value"; } ``` @@ -82,9 +89,9 @@ insert(table, key, value) { ```C value_t remove(table, key) { index = hash de la clé; - tant que l'état de la case est pas "vide" - si "index" est occupé et la clé est "key" - changer l'état de la case à supprimé + tant que l'état de la case n'est pas "vide" + si "index" est "occupé" et la clé est "key" + changer l'état de la case à "supprimé" sinon index = rehash } @@ -99,8 +106,8 @@ value_t remove(table, key) { ```C bool search(table, key, value) { index = hash de la clé; - tant que l'état de la case est pas "vide" - si "index" est occupé et la clé est "key" + tant que l'état de la case n'est pas "vide" + si "index" est "occupé" et la clé est "key" retourner vrai sinon index = rehash @@ -118,6 +125,8 @@ bool search(table, key, value) { ## Structures de données +\footnotesize + . . . ```C