Skip to content
Snippets Groups Projects
Verified Commit 44f56a10 authored by orestis.malaspin's avatar orestis.malaspin
Browse files
parents a2c8decf 0a44c1f1
No related branches found
No related tags found
No related merge requests found
Pipeline #15240 passed
......@@ -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
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment