链式存储

链式存储的基本实现

1.3线性表的链式存储结构(单链表)

  用一组地址任意的存储来存放线性表中的元素。

  以元素(数据元素的映象)+指针(指示后继元素存储位置)=结点(表示数据元素或数据元素的映象)

  以“结点的序列”表示线性表
          ————称作链表

  以线性表中第一个数据元素a~1~的存储地址作为线性表中的地址,称作线性表的头指针。
  有时为了操作方便,在第一个结点之前需加一个“头结点”,以指向头结点的指针为链表的头指针。

单链表的C语言实现:

typedef struct LNode{
    ElemType data;//数据域
    struct LNode *next;//指针域
}LNode, *LinkList;

LinkList L;//L为单链表的头指针;

单链表操作实现的基本实现:

  • GetElem(L, i, e) //取第i个数据元素
  • ListInsert(&L, i, e) //插入数据元素
  • ListDelete(&L, i, e) //删除数据元素
  • ClearList(&L) //重新置为一个空表
  • CreateList(&L, n) //生成含$n$个数据元素的链表

找第1个数据元素,必须先找到第$i-1$个数据元素。因此,查找第i个数据元素的基本操作是==移动指针,比较j和i==。令指针p始终指向线性表中第j个数据元素。


本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!