链表Linked List
一、链表是一种线性数据结构:分为单链表和双链表。
二、链表结构
1、单链表:值(value)和指针(next)
2、双链表:值(value)和指针(prev,next)
三、操作:索引、插入、删除
1、单链表
(1)、时间复杂度:O(N)、O(1)、O(N)
(2)、索引:需从head结点开始遍历,找到所需结点;
(3)、插入:使用给定值初始化新结点,将新结点的next字段连接到下一个节点,将上一个节点的next字段连接到新结点;
(插入头结点:初始化新结点,新结点next字段连接原头结点,将新结点指定为头结点)
(4)、删除:找到待删除结点的上一个结点和下一个结点,连接上一结点和下一结点;
(删除头结点:将待删除结点的下一结点指定为Head结点)
2、双链表:
(1)、时间复杂度:O(N)、O(1)、O(1)
(2)、索引:需从head结点开始遍历,找到所需结点;
(3)、插入:使用给定值初始化新结点,将新结点的next字段连接到下一个节点,prev字段连接到上一个结点,将上一个节点的 next字段连接到新结点,下一个结点的prev字段连接到新结点;
(4)、删除:找到待删除结点的上一个节点和下一个节点,将上一个结点的next连接到下一个节点,下一个结点的prev连接到上一个节点
四、时间复杂度对比