当不使用双向链表似乎是在真实的生活场景的最佳选择?有人建议可以实际使用的呢?
在许多操作系统中,线程调度器(即选择哪些流程需要在该时间运行的东西)保持在任何时间运行的所有进程的双向链表。这使得它很容易的过程,从一个队列移动(比如,需要一个转身跑活动进程的列表)到另一个队列(比方说,那被封锁,等待着什么将他们释放进程列表)。使用双链表这里允许每个接头,并重新接线及时O(1)运行,并且没有任何内存分配,以及双链表结构,可以很好地用于使用队列实现调度器(在这里只有你需要从前面拉的东西出来。)
添加到模板类型定义的答案。
你考虑以下应用:
- 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
要遍历从特定点两侧的任何应用程序。
双向链表构建MRU / LRU(大多数/最近最少使用)缓存使用。你可以找到链接https://www.geeksforgeeks.org/design-a-data-structure-for-lru-cache/使用HashMap和DoublyLinkedList实施
一个LRU缓存的主要应用的是,它是在使用大多数/最近最少访问的项目,就像在android手机的主屏幕的情况下保存最近使用的应用程序的情况下使用。这里是一个链接解释应用
希望这可以帮助!