前言
声明:因个人能力有限,本文仅是个人的学习记录笔记,有错误之处还望指出数据结构每日一题
要点
- 顺序表的遍历
- 顺序表数据的删除
思想
- 遍历顺序表,记录下不在区间的数据个数k
- 只有不在区间的时候数据才加入到数组中
- k的长度就是操作过后的顺序表的长度(+1)
bool delete(Sqlist &L,int s,int t){
if(L.length == 0 || s > t)
return false;
int k = 0; //保存保留元素后的数组下标
for(int i=0; i<L.length;i++){
if(L.data[i] <= s || L.data[i] > t) //不在删除区间的数据保留
{
L.data[k++]=L.data[i];
L.length = k+1; //k下标从0开始
}
return true;
}
}
今日易错题
-
链表的中插入/删除第i个数据的时间复杂度(链表长度为n)
O(N)
因为链表不支持随机存取故每次都要遍历完整个链表 -
要在链表的结点之前插入数据必须知道其前驱节点的信息(双链表可以很好的实现)