QCM Algorithmes, structures de données et complexité – Partie 11

Questions pratiques pour testez vos connaissances sur la complexité en espace et en temps des algorithmes et des structures de données courants. Testez votre connaissance et travaillez sur les questions que vous trompez le plus souvent.

 
 

1. Que fait l’extrait de code suivant ?
node.next = node.next.next;

A Supprime le nœud suivant de la liste

B Insère un nouveau nœud après le nœud actuel

C Échange deux nœuds

D Duplique le nœud suivant

A
Cet extrait de code supprime le nœud suivant d’une liste simplement liée en le contournant. Il définit le pointeur suivant du nœud actuel de manière à ce qu’il pointe sur le nœud suivant, ce qui a pour effet de supprimer le nœud suivant de la liste.

 

2. La méthode remove d’une liste chaînée supprime toujours le deuxième nœud, quelle que soit l’entrée. Quelle est l’erreur probable ?

A La mise à jour incorrecte des pointeurs

B L’utilisation du mauvais opérateur de comparaison

C Oublier de vérifier si la liste est vide

D Toutes les réponses ci-dessus

A
Si la méthode remove supprime toujours le deuxième nœud, l’erreur probable réside dans la manière dont les pointeurs sont mis à jour. Cela indique que la méthode ne navigue pas correctement vers le nœud à supprimer et modifie toujours les pointeurs du premier nœud ou de sa prochaine référence.

 

3. Pourquoi une fonction de recherche dans une liste chaînée peut-elle renvoyer null pour des valeurs existantes ?

A La logique de comparaison est incorrecte

B Elle commence au mauvais nœud

C Il saute des nœuds

D Toutes les réponses ci-dessus

D
Une fonction de recherche peut renvoyer une valeur nulle pour des valeurs existantes en raison de plusieurs erreurs potentielles : logique de comparaison incorrecte, début de la recherche au mauvais nœud ou saut de nœuds par erreur au cours de la recherche.

 

 
 

4. Dans une fonction destinée à ajouter un nœud à un index spécifique dans une liste chaînée, le nœud est ajouté à la fin, quel que soit l’index. Quelle est l’erreur ?

A L’itération dans la liste n’est pas correcte

B Ne pas vérifier si l’index est dans les limites

C Les deux A et B

D Aucune de ces réponses

C
L’erreur réside probablement dans le fait que l’on n’itère pas correctement dans la liste pour atteindre l’index spécifié et que l’on ne vérifie pas si l’index se trouve dans les limites de la liste. Il en résulte que le nœud est ajouté à la fin par défaut, car les conditions pour l’insérer à la bonne position ne sont pas remplies.

 

5. Quelle structure de données utilise une approche FIFO (First In, First Out) ?

A La pile (Stack)

B File d’attente (Queue)

C Tableau (Array)

D Liste chaînée (Linked List)

B
Une file d’attente utilise une approche FIFO (First In, First Out), où les éléments sont ajoutés à une extrémité et retirés de l’autre, en veillant à ce que le premier élément ajouté soit le premier à être retiré.

 

6. Quelle est la principale différence entre une pile et une file d’attente ?

A La façon dont elles stockent les données

B La façon dont elles accèdent aux données

C Leurs limites de taille

D Leur complexité de mise en œuvre

B
La principale différence entre une pile et une file d’attente réside dans leurs méthodes d’accès: une pile utilise la méthode LIFO (Last In, First Out), où le dernier élément ajouté est le premier à être retiré, tandis qu’une file d’attente utilise la méthode FIFO (First In, First Out).

 

 
 

7. Dans une file d’attente (Queue), quelles opérations correspondent à l’ajout et au retrait d’éléments ?

A push et pop

B enqueue et dequeue

C insert et delete

D add et remove

B
Dans une file d’attente, les opérations d’ajout et de retrait d’éléments sont respectivement l’enqueue (ajout d’un élément à la fin de la file d’attente) et le dequeue (retrait d’un élément de la tête de la file d’attente).

 

8. Lequel des éléments suivants est un exemple réel de pile ?

A Une file d’attente à un guichet

B La disposition des assiettes dans une cafétéria

C Une liste de chansons

D La file d’attente à un arrêt de bus

B
La disposition des assiettes dans une cafétéria, où la dernière assiette placée sur le dessus est la première à être enlevée, est un exemple réel de pile, démontrant le principe LIFO (Last In, First Out).

 

9. Comment une pile peut-elle être implémentée ?

A En utilisant un tableau ou une liste chaînée

B En utilisant une table de hachage

C Utilisation d’un arbre binaire

D Utilisation de l’accès direct à la mémoire

A
Une pile peut être mise en œuvre efficacement à l’aide d’un tableau ou d’une liste chaînée, où les éléments peuvent être ajoutés ou supprimés à la fin du tableau ou à la tête de la liste chaînée, respectivement.

 

 
 

10. Quelle est la complexité temporelle de l’accès à l’élément le plus bas d’une pile ?

A O(1)

B O(n)

C O(log n)

D O(n^2)

B
L’accès à l’élément le plus bas d’une pile a une complexité temporelle de O(n) parce qu’il faut d’abord retirer tous les autres éléments situés au-dessus, dans le cas d’une implémentation traditionnelle de la pile où seul l’élément le plus haut est directement accessible.

 

 

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *