- 理解线性表的定义和线性表的顺序、链式存储结构。
- 熟练掌握线性表的插入、删除等运算的算法。
- 熟悉线性表算法设计。
1. 线性表的定义和线性表的顺序、链式存储结构
定义
书P55
线性表是由同一类型的数据元素构成的有序序列的线性结构。
顺序存储结构
书P56
线性表的顺序存储是指在内存中用地址连续的一块存储空间顺序存放线性表的各元素。
初始化
List MakeEmpty()
{
List L;
L = (List)malloc(sizeof(struct LNode));
L->Last = -1;
return L;
}
链式存储结构
书P60
不要求逻辑上相邻的两个数据元素物理上也相邻,插入、删除不需要移动数据元素。
求表长
int Length( List L )
{
Position p;
int cnt = 0; /* 初始化计数器 */
p = L; /* p指向表的第一个结点 */
while ( p ) {
p = p->Next;
cnt++; /* 当前p指向的是第cnt个结点*/
}
return cnt;
}
2.算法
顺序表
查找
书P57
查找成功的平均比较次数为(n+1)/2,平均时间复杂度为O(n)。<