Fiche d’exercices de Structures de données avec corrigé
Fiche d’exercices de Structures de données gratuite et imprimable : 8 exercices, du niveau facile au niveau examen, avec corrigé. Imprimez-la ou enregistrez-la en PDF.
Pour les enseignants : gratuite à imprimer, copier et utiliser en classe. Chaque nouvelle fiche a de nouvelles valeurs et son propre corrigé. Un lien vers ExamProblems sur la page de votre cours est apprécié.
Nom: ____________________ Date: ____________
1.Facile
Que fait une fonction de hachage dans une table de hachage ?
AElle associe une clé à un indice de la table
BElle trie les clés de la table
CElle compte le nombre de clés stockées
DElle chiffre les valeurs de la table
2.Facile
Quelle est la principale différence entre un tableau statique et un tableau dynamique ?
AUn tableau dynamique stocke ses éléments dans des nœuds chaînés, ce qui lui permet de grandir un élément à la fois
BUn tableau statique offre un accès par indice plus lent
CUn tableau dynamique peut grandir en passant à un bloc de mémoire plus grand
DUn tableau statique ne peut stocker que des nombres
3.Facile
Dans une liste simplement chaînée, chaque nœud contient :
ADes données et un indice
BDes données et une référence vers le nœud suivant
CUniquement des données
DDes données et des références vers tous les autres nœuds
4.Moyen
Quel type abstrait de données l'algorithme de Dijkstra utilise-t-il pour choisir le prochain sommet à traiter ?
AUne pile
BUne file de priorité min
CUne file FIFO
DUn ensemble sans ordre
5.Moyen
Quelle méthode de résolution des collisions stocke les clés en collision dans une liste au sein du même compartiment ?
ALe double hachage (double hashing)
BLe sondage linéaire (linear probing)
CLe chaînage séparé (separate chaining)
DLe sondage quadratique (quadratic probing)
6.Moyen
Combien de temps prend la recherche d'un mot de longueur L dans un trie à alphabet fixe ?
AO(L), quel que soit le nombre de mots stockés
BO(L × n)
CO(log n), où n est le nombre de mots
DO(n), où n est le nombre de mots
7.Difficile
Un arbre de segments (segment tree) est généralement utilisé pour :
ATrier des chaînes par ordre alphabétique en stockant chaque préfixe dans un nœud distinct de l'arbre
BRépondre à des requêtes sur intervalles (comme des sommes d'intervalles) et à des mises à jour en O(log n)
CStocker les arêtes d'un graphe
DImplémenter une pile
8.Difficile
Quels sont les coûts en temps et en espace supplémentaire de l'inversion sur place d'une liste simplement chaînée ?
AO(n) en temps et O(n) en espace supplémentaire
BO(1) en temps et O(1) en espace supplémentaire
CO(n log n) en temps et O(1) en espace supplémentaire
DO(n) en temps et O(1) en espace supplémentaire
Corrigé
1. A · Elle associe une clé à un indice de la table
2. C · Un tableau dynamique peut grandir en passant à un bloc de mémoire plus grand
3. B · Des données et une référence vers le nœud suivant
4. B · Une file de priorité min
5. C · Le chaînage séparé (separate chaining)
6. A · O(L), quel que soit le nombre de mots stockés
7. B · Répondre à des requêtes sur intervalles (comme des sommes d'intervalles) et à des mises à jour en O(log n)
8. D · O(n) en temps et O(1) en espace supplémentaire
Corrigés complets pas à pas : entraînez-vous sur ce thème sur examproblems.com.