一、链表
链表:通过一组地址任意的存储单元来存储线性表中的数据元素,存储单元可连续也可不连续。
单链表(带头结点的单链表)
(1) 建立单链表:
通过头插法建表:时间复杂度为O(n)
(2) 遍历单链表:时间复杂度为O(n)
从链表的首结点开始,依次访问,每次访问一个结点。
(3) 求单链表长度:时间复杂度为O(n)
从链表的首结点开始,每次访问一个结点,计数器加1。
(4) 查找:时间复杂度为O(n)
按序号查找:设置计数器,从头结点开始,依次移动指针,每移动一次,计数器加1,直到计数器结果与所查序号相同为止。
按值查找:从头结点开始,依次移动指针,比较结点的数据域,直到与所查找的值相同为止。
(5) 插入:
在结点p之后插入结点s,时间复杂度为O(1):
在结点p之前插入结点s,时间复杂度为O(n):
(6) 删除结点:
删除结点q的后继结点p: