线性表
基本概念
线性存储
顺序表
链式存储
单链表
双链表
循环链表
静态链表
线性表
- n(>=0)个数据元素的有限序列,记作(a1,…ai,ai+1,…an),其中ai是线性表中的数据元素,n是表的长度(n=0为空表,即表中不含任何元素)
- ai是线性表中的第i个元素线性表中的位序
逻辑特征(n>0)
存在唯一一个被称为第一个的数据元素(a1)
存在唯一一个被称为最后一个的数据元素(an)
除第一个数据元素外,其他元素均只有一个直接前驱
除最后一个数据元素外,其他元素均只有一个直接后继
线性表的定义和基本操作
InitList(&L) | 构造一个空的线性表L |
DestoryList(&L) | 销毁L |
ListEmpty(L) | 判断L是否为空 |
ListLength(L) | 求L的长度 |
PriorElem(L,cur_e,&pre_e) | 求前驱的值 |
NextElem(L,cur_e,&next_e) | 求后继的值 |
GetElem(L,i,&e) | 取i位置数据元素的值 |
LocateElem(L,e,equal()) | 在线性表中查找e |
ListTraverse(L,visit()) | 遍历线性表 |
ClearList(&L) | 将L置为空表 |
ListInsert(&L,i,e) | 在i位置插入值为e的数据元素 |
ListDelete(&L,i,&e) | 删除i位置的数据元素 |
线性表的顺序表示(顺序表)
线性表
具有相同数据类型的n(n >=0 )个数据元素的有限序列
顺序表
用顺序存储的方式实现线性表顺序存储。把逻辑上相邻的元素存储在物理位置上也相邻的存储单元中,元素之间的关系由存储单元的邻接关系来体现。
线性表的链式表示(链表)
typedef struct LNode{
// 定义单链表节点类型
Elem