Hachage 1 Cor
Hachage 1 Cor
Hachage 1 Cor
2009-2010
Contrôle continu 4
(3 pages)
Questions de cours (5 points)
• A quoi sert une table de hashage ? Pour n clés, comparez l’encombrement mémoire
entre l’adressage ouvert et l’adressage chainé.
à accéder à des clés plus rapidement. En général le temps moyen d’accès à n éléments
est en O(n). L’adressage chainé stocke la clé à l’extérieur de la table dans une liste
doublement chainée (2 pointeurs pour une clé). L’adressage ouvert stocke la clé à
l’intérieur de la table. L’adressage chainé prend donc plus d’espace que l’adressage
ouvert.
• Peut-on avoir un arbre binaire de recherche dont les sommets sont des tas Max? Si oui
écrire une fonction permettant de comparer deux tas. Si non, expliquez pourquoi.
Pour qu’un type d’objet soit la valeur d’un sommet d’ABR il faut que le type soit doté
d’un ordre total. On peut comparer deux tas en comparant la valeur des racines donc
un tas peut être la valeur d’un sommet.
fonction op ::=<(ref T1,T2 : tas d’objet) :booleen ;
retourner(valeur(T1)<valeur(T2))
• On considère une table de hashage munie la fonction de hashage sur la clé x
h( x ) = (3 x + 1)mod M
- Quelle sont les index possibles pour le tableau de la table de hashage ?
les index sont dans l’intervalle[0..M-1]
- Quel problème génère le choix de M=8 ?
Aucun car toutes les valeurs de l’intervalle sont atteintes.
- On suppose que M=11, dessinez la structure de données, après la suite
d’insertion suivante (23,13,8,12,27) dans le cas de l’adressage chainé.
Exercice 2 (5 points)
• Soit l’arbre binaire de recherche suivant
14
5 12
3 6 11 13
2
Pour les questions 1,2 on considère que l’arbre à modifier est celui de la figure ci-dessus.
On donnera les détails des opérations.
1. Donnez l’arbre après insertion de 10, on expliquera comment il est obtenu.
On cherche un chemin dans l’arbre à partir de la racine en comparant la valeur du
sommet avec la valeur à insérer. Si la valeur est supérieure (resp. <=) on descend sur
le fils droit (resp. gauche). Lorsque le sommet n’a pas de fils, on créée un fils à droite
(resp. à gauche).
Université Bordeaux 1 UE INF251
2009-2010
3. On considère la suite des clés dans l’ordre hiérarchique construire le tas min
correspondant. On dessinera le tas après chaque insertion d’une clé.
Les valeurs dans l’ordre hiérarchique sur l’arbre de départ sont :
14,2,9,5,12,3,6,11,13 .
Exercice 2 (4 points)
1 - Ecrire une fonction tasToListe qui construit une liste doublement chaînée L contenant tous
les éléments d’un tas-Max T dans l’ordre croissant. On utilisera les primitives du type listes
doublement chaînées et du type tas.
fonction tasToListe(val T : tas d’objet) :listeDC d’objet ;
var L:listeDC d’objet;
début
creerListe(L) ;
tantque valeur(T)!=NULL faire
insererEnTete(L,valeur(T)) ;
supprimer(T) ;
fintantque
retourner(L)
fin
2 – Décrire les changements dans votre fonction si la liste est simplement chainée.
L’algorithme ci-dessus ne nécessite aucun changement.
___________________________________________________________________________