web-dev-qa-db-fra.com

Utilisation réelle de la liste doublement chaînée

Quand l'utilisation d'une liste double lien semble-t-elle être la meilleure option dans un scénario réel? Quelqu'un peut-il suggérer une utilisation pratique?

6
Tanvi Patel

Dans de nombreux systèmes d'exploitation, le planificateur de thread (qui choisit les processus qui doivent être exécutés à quelle heure) maintient une liste doublement chaînée de tous les processus en cours d'exécution à tout moment. Cela facilite le déplacement d’un processus d’une file d’attente (par exemple, la liste des processus actifs devant être exécutés à tour de rôle) dans une autre file d’attente (par exemple, la liste des processus bloqués et dans l’attente que quelque chose soit libéré). L’utilisation d’une liste doublement chaînée ici permet à chacune de ces épissures et de ces fils de s’exécuter dans le temps O(1) et sans aucune allocation de mémoire, et la structure de liste doublement chaînée fonctionne bien pour la mise en oeuvre du planificateur à l’aide de files d’attente. (où il suffit de sortir les choses de l'avant.)

7
templatetypedef

Ajout à la réponse de templatetypedef.

Vous envisagez les applications suivantes:

- A music player which has next and prev buttons.
- Represent a deck of cards in a game.
- The browser cache which allows you to hit the BACK-FORWARD pages.
- Applications that have a Most Recently Used list (a linked list of file names)
- Undo-Redo functionality

Toute application dans laquelle vous souhaitez traverser les deux côtés à partir d'un point spécifique.

15
sam_k

La liste à double liaison est utilisée dans la construction du cache MRU/LRU (le plus utilisé/le moins utilisé récemment). Vous pouvez trouver l'implémentation à l'aide de HashMap et DoublyLinkedList dans le lien https://www.geeksforgeeks.org/design-a-data-structure-for-lru-cache/

L'une des principales applications du cache LRU est qu'il est utilisé dans les cas qui utilisent les éléments les plus/moins consultés, comme dans le cas de l'écran d'accueil du téléphone Android pour enregistrer les applications les plus récemment utilisées. Voici un lien expliquant l'application

http://www.primarydigit.com/blog/an-application-of-lru-least-recently-used-data-structure-your-phones-home-screen

J'espère que cela t'aides!

0
Aarish Ramesh