顺序表
1.顺序存储表示
2.基本操作的实现
补充:操作算法中的预定义常量和类型
InitList(&L) 初始化
!是逻辑非运算
DestroyList(&L) 销毁
ClearList(&L) 清空
Listinsert(&L,i,e) 第i个位置插入新元素e
如果有n个元素,我们可以插入下表为0-n+1的位置上
算法思想:分成五步走
下面来看看伪代码,主要看第三步,若最后是第n个元素,则他的下标是n-1,
循环从n-1开始也就是length-1,往回减,减到下表为i-1的地方。也就是说先把最后一个元素往后移,
然后依次往后移倒数第二个,倒数第三个等等。
ListDelete(&L,i,&e) 删除第i个位置的元素,并返回e
删除算法演示:
跟插入大同小异
IsEmpty(L) 若为空返回true,否则返回false
ListLength(L) 返回元素个数
LocateElem(L,e) 查找与给定值e相等的元素,若成功返回该元素在表中的序号,否则返回0
1.查找算法的基本操作为:将记录的关键字同给定值进行比较
2.平均查找长度 ASL
Pi:第i个记录被查找的概率 Ci:找到第i个记录需要比较的次数
总概率就等于Pi×ASL=(n+1)/2(如图所示)
GetElem(L,i,&e) 将表中第i个位置的元素返回给e
3.小结
1.顺序表的操作算法分析:
2.优缺点
为了克服这些缺点,我们要开始学习链表!