一、线性表及其抽象数据类型
PS:数组和链表都是线性表,只不过是存储方式不同
线性表的抽象数据模型
二、数组
(1)数组的3个特点
(2)数组的基本运算
查找
插入
伪代码步骤
- 判断插入位置是否合法
- 判断表是否已满
- 腾出第i个位置
- 插入e
删除
- 判断删除位置是否合法
- 删除e
- 将后续元素依次往前移动
(3)评价数组
详细优缺点
三、链表
1、类型
2、什么是单链表
3、求单链表的长度的C语言算法
int ListLength(LinkList L)
{
Node *p;
p=L->next;
j=0;
while(p!=NULL)
{
p=p->next;
j ++;
}
return j;
}
4、在单链表上的基本运算
(1)新建单链表
(2)查找
每次都只能从头结点一个一个遍历下去
(3)插入
先立后破再立
(4)删除
也是先立后破
5、单链表特点
- 空间上:
动态链表的特点在于可动态生成,因其需用指针表示元素间的逻辑关系,故其存储密度较低。
存储密度=元素本身占用存储量 / 结点占用存储量 - 时间上:
动态链表的特点在于插入、删除操作时只改指针不移动元素,但不能随机存取表中元素,需顺链找;
6、循环链表