链表Linked List

一、链表是一种线性数据结构:分为单链表和双链表。

链表Linked List

链表Linked List

二、链表结构

1、单链表:值(value)和指针(next)

链表Linked List

2、双链表:值(value)和指针(prev,next)

链表Linked List

三、操作:索引、插入、删除

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连接到上一个节点

四、时间复杂度对比

链表Linked List