算法|数据结构学习笔记之线性表(02)( 三 )


(8)(尾插法)创建单链表
【算法描述】

  • 尾插法 , 每一次将新的结点插入到链表最后一个结点后面

1.6、循环链表循环链表 , 就是单链表的尾指针 , 指向头指针 。 从而形成一个环 。
【算法|数据结构学习笔记之线性表(02)】(1)初始化
【算法描述】
  • 循环链表和单链表类似 , 只不过多了一步:
  • 将尾指针指向头指针

循环链表 , 遍历结束的标识:
  • 尾指针等于头指针时候 , 遍历结束
  • p!=L或者p->next!=L
1.7、双向链表双向链表 , 在单链表的基础之上 , 新增一个指针域 , 这个指针域记录前一个结点的地址 , 从而形成了双向链表 。
(1)双向链表定义
【算法描述】
  • 一个数据域
  • 一个前指针域
  • 一个后指针域

(2)插入
【算法描述】
  • 在第i个位置结点前插入元素
  • 插入时候 , 结点的连接顺序:
  • 先对新节点的前指针连接 , 后对新节点的后指针连接

(3)删除
【算法描述】
  • 删除第i个结点元素

1.8、顺序表和链表比较顺序表
  • 必须事先分配号存储空间
  • 存储密度紧凑 , 100%
  • 查找效率高
链式表
  • 动态分配存储空间
  • 存储密度一般 , 50% , 需要存储指针域
  • 插入 , 删除效率高
1.9、线性表的具体应用(1)顺序有序表合并
【算法描述】
  • 合并线性表LA和LB的元素 , 形成一个新的线性表
  • LA和LB是非递增或非递减的线性表
  • 顺序表就需要操作数组

(2)链式有序表合并
【算法描述】
  • 合并线性表LA和LB的元素 , 形成一个新的线性表
  • LA和LB是非递增或非递减的线性表
  • 操作链表

以上 , 就是我在学习数据结构中有关线性表的笔记 。
这是我的第107篇文章 , 感谢您的阅读 。