Skip to content
Snippets Groups Projects
Verified Commit 82a5f8dc authored by orestis.malaspin's avatar orestis.malaspin
Browse files

added pseudo stuff

parent e648c69e
No related branches found
No related tags found
No related merge requests found
Pipeline #15189 passed
......@@ -15,4 +15,92 @@ patat:
backend: auto
...
# Exercice 3
* Stocker les numéros de téléphones internes d'une entreprise suivants dans un
tableau de 10 positions.
* Les numéros sont compris entre 100 et 299.
* Soit $N$ le numéro de téléphone, la fonction de hachage est
$$
h(N)=N\mod 10.
$$
* La fonction de gestion des collisions est
$$
C_1(N,i)=(h(N)+3\cdot i)\mod 10.
$$
* Placer 145, 167, 110, 175, 210, 215 (mettre son état à occupé).
* Supprimer 175 (rechercher 175, et mettre son état à supprimé).
* Rechercher 35.
* Les cases ni supprimées, ni occupées sont vides.
* Expliquer se qui se passe si on utilise?
$$
C_1(N,i)=(h(N)+5\cdot i)\mod 10.
$$
# Préambule
* 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) {
index = (index + k) % table_size; // attention à pas dépasser
}
table[index].key = key;
table[index].state = OCCUPIED;
```
* Gestion de l'état d'une case *explicite*
```C
typedef enum {EMPTY, OCCUPIED, DELETED} state;
```
# L'insertion
## Pseudocode?
. . .
```C
insert(table, key, value) {
index = hash de la clé;
index = si "index" est déjà occupé dans le tableau gérer la collision;
changer l'état de la case à "index" à OCCUPIED;
changer la valeur de la case "index" à value;
}
```
# La suppression
## Pseudocode?
. . .
```C
insert(table, key, value) {
index = hash de la clé;
index = si "index" est déjà occupé dans le tableau gérer la collision;
changer l'état de la case à "index" à OCCUPIED;
changer la valeur de la case "index" à value;
}
```
# La recherche
## Pseudocode?
. . .
```C
insert(table, key, value) {
index = hash de la clé;
index = si "index" est déjà occupé dans le tableau gérer la collision;
changer l'état de la case à "index" à OCCUPIED;
changer la valeur de la case "index" à value;
}
```
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