双向链表 (DLL) 是一种线性数据结构,它包含一个额外的指针,通常称为前一个指针,以及位于单向链表中的下一个指针和数据。下面是说明相同的图像。
DLL 的优点:
- 反转双向链表非常容易。
- 它可以在执行期间轻松分配或重新分配内存。
- 与单链表一样,它是最容易实现的数据结构。
- 这个双向链表的遍历是双向的,这在单链表中是不可能的。
- 与单链表相比,删除节点很容易。单链表删除需要一个指向要删除的节点和前一个节点的指针,但在双链表中,它只需要要删除的指针。
DLL 的缺点:
- 与数组和单链表相比,它使用额外的内存。
- 由于内存中的元素是随机存储的,因此元素是按顺序访问的,不允许直接访问。
DLL 的用途:
- 它用于需要前后导航的导航系统。
- 浏览器使用它来实现访问过的网页的后退和前进导航,即一个后退和前进按钮。
- 它也用于代表经典的纸牌游戏。
- 各种应用程序也使用它来实现撤消和重做功能。
- 双向链表也用于构建MRU / LRU (最近/最少使用)缓存。
- 其他数据结构,如堆栈、哈希表、二叉树也可以使用双向链表构建或编程。
- 同样在许多操作系统中,线程调度程序(选择哪个进程需要在哪个时间运行的东西)维护当时运行的所有进程的双向链表。
如果您想与行业专家一起参加直播课程,请参阅Geeks Classes Live