现实生活中使用双向链表

问题描述 投票:7回答:3

当不使用双向链表似乎是在真实的生活场景的最佳选择?有人建议可以实际使用的呢?

data-structures linked-list doubly-linked-list
3个回答
7
投票

在许多操作系统中,线程调度器(即选择哪些流程需要在该时间运行的东西)保持在任何时间运行的所有进程的双向链表。这使得它很容易的过程,从一个队列移动(比如,需要一个转身跑活动进程的列表)到另一个队列(比方说,那被封锁,等待着什么将他们释放进程列表)。使用双链表这里允许每个接头,并重新接线及时O(1)运行,并且没有任何内存分配,以及双链表结构,可以很好地用于使用队列实现调度器(在这里只有你需要从前面拉的东西出来。)


16
投票

添加到模板类型定义的答案。

你考虑以下应用:

- 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

要遍历从特定点两侧的任何应用程序。


0
投票

双向链表构建MRU / LRU(大多数/最近最少使用)缓存使用。你可以找到链接https://www.geeksforgeeks.org/design-a-data-structure-for-lru-cache/使用HashMap和DoublyLinkedList实施

一个LRU缓存的主要应用的是,它是在使用大多数/最近最少访问的项目,就像在android手机的主屏幕的情况下保存最近使用的应用程序的情况下使用。这里是一个链接解释应用

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

希望这可以帮助!

© www.soinside.com 2019 - 2024. All rights reserved.