LL,Stack,Queue,DLL,Deque
链表(Linked List)是一种数据结构,它由一组节点
组成,它们作为一个整体表示一个序列。最简单的情形下,每一个节点由一个值data
和指向下序列中一节点的引用link
组成。
在链表中查找数77
链表及其变体是用来实现列表(List)、栈(Stack)、Queue(队列)、Deque ADTs1(双端队列)的底层数据结构。Linked List and its variations are used as underlying data structure to implement List, Stack, Queue, and Deque ADTs
下面我们会讨论链表(只包含一个next
指针)和它的两个变体:Stack和Queue,还会讨论Doubly Linked List(DLL)(双向链表)(包含next
指针和previous
指针),及其变体:Deque。
动机
链表这个数据结构通常会在大学本科阶段学习,有以下几个原因:
- 它是一个简单的线性数据结构。
- 作为一个抽象数据类型的列表,它有一系列的应用,例如学生列表,事件列表,任职列表等等(尽管有其他更多高级数据结构能做到同样(甚至更好))或者作为栈/队列/双端队列的抽象数据类型。
- 它有一些有趣的边界用例,指出了数据结构的良好实现的必要。
- 它包含多种自定义的选项,因此特别适合使用
OOP Programming
面向对象编程来实现。