一、定义和要实现的操作
线性表的定义很简单,只需要将一些数据串起来即可
对于这样一种数据结构,应该实现的操作有哪些?
InitList(*L)
:初始化操作,建立一个空的线性表L
ListEmpty(L)
:查看线性表是否为空。若线性表为空,返回true
,否则返回false
ClearList(*L)
:将线性表清空GetElem(L, i, *e)
:将线性表L
的第i
个元素值返回给e
LocateElem(L, e)
:将线性表L
中查找与给定值e
相等的元素。如果查找成功,返回该元素在表中序号;否则,返回0表示查找失败。ListInsert(*L, i, e)
:在线性表L
中的第i
个位置插入新元素e
ListDelete(*L, i, *e)
:删除线性表L
中第i
个位置元素,并用e
返回其值ListLength(L)
:返回线性表L
的元素个数二、两种存储方式
在计算机里,最主要的两种存储方式为链式存储和顺序存储,链表用这两种存储方式都可以实现,就像下面这张图表示的一样。三、链表的几种类型
上面根据存储方式定义的两种链表类型,接下来换一个角度,从链表的方向上看一下链表有几种:
3.1 单链表
3.2 双向链表
3.3 循环链表
循环链表是将头和尾链起来的链表,单向和双向链表都有循环链表,如下所示