链表总结-----顺序表,单链表,静态链表

线性表应该具有什么样的数据类型操作:

InitList(* L)                      初始化操作,建立一个空的线性表

ListEmpty(L)                   判断线性表是否为空表,若线性表为空,返回true,否则返回false.

ClearList(* L)                  将线性链表清空

GetElem(L,i,*e)              将线性表L中的第i个位置元素值返回为e

LocateElem(L,e)             在线性表L中查找与给定值e相等的元素,若查找成功,返回该元素的序号,否则返回0表示失败。

ListInsert(*L,i,e)               在指定位置插入元素

ListInsert(*L,i,*e)             删除指定元素值并用e返回其值

顺序表的优缺点

线性表的缺点:

  • 插入和删除需要移动大量元素
  • 当线性表长度变化较大时,难以确定存储空间的容量
  • 容易造成存储空间的“碎片”

线性表的优点

  • 无须为表示表中元素之间的逻辑关系而增加额外的存储空间
  • 可以快速存取表中任意位置的元素

单链表

单链表中的第一个结点的存储位置叫做头指针,最后一个结点指针为NULL;

 头指针:

  • 头指针是指链表指向第一个结点的指针,若链表中有头结点,头指针则是指向头结点的指针
  • 头指针具有标识的作用,所以常用头指针冠以链表的名字
  • 无论链表是否为空,头指针都不为空
  • 头指针是链表的必要元素

头结点

  • 头结点是为了操作的统一和方便而设立的放在第一个元素的结点之前,其数据域一般无意义(存放链表的长度)
  • 有了头结点,对在第一个元素结点前插入结点和删除第一个结点,其操作与其他结点操作一样
  • 头结点不一定是链表的必要元素
原文地址:https://www.cnblogs.com/sbb-first-blog/p/13806357.html