2021-5-18 数据结构记录
今日学习了很少的数据结构
抽象数据类型
一个数学模型以及定义在该模型上的一组操作
数据类型:1.一组性质相同的集合
2.定义在此集合上的一些操作
即数据+操作
“抽象”的意义在于数据类型的数学抽象特性。
线性表
同类型数据元素构成的有序序列的线性结构
数组:
- 插入操作
- 判断是否表满:last(存入的最后一个数据的下标)=length(数组长度)。表满,return;
- 判断插入位置是否合法:插入位置为i,if(i<1||i>last+2)
- 向前遍历,从last开始依次后移一位,直到i,last++
- 删除操作
- 判断是否表满:last(存入的最后一个数据的下标)=length(数组长度)。表满,return;
- 判断插入位置是否合法:插入位置为i,if(i<1||i>last+1)
- 向后遍历,从i开始依次前移一位,直到last,last--
链表:
- 求长度
- 循环,令k=0,遇到p->next指针k++
- 查找
- 按照序号查找:循环,i=0,if判断i,不一样,i++,一样,return i,i即为所求下标
- 按照值查找:循环,i=0,if判断值,不一样,i++,一样,return i,i即为所求下标
- 插入
- 插入为s,在p与p+1之间插入
-
s=p->next; \\s指向为p+1 p->next=s; \\改变p的指向为s \\两行代码顺序不可变
- 新结点是否为表头
- 插入位置,即结点p是否存在
- 执行上述代码
- 删除
p->next=s->next; \\使p的指向为s的下一个结点
delete s; \\释放s
- s为删除结点,前一个为p
- 新结点是否为表头
- 插入位置,即结点p是否存在
- 执行上述代码