[DAY3]数据结构代码题学习笔记

题目

已知长度为n的线性表L采用顺序存储结构,编写-一个时间复杂度为O(n)、空间
复杂度为0(1)的算法,该算法删除线性表中所有值为x的数据元素。

代码设计思路

线性表时间复杂度为n说明顺序表只能遍历一遍,那么我们就可以考虑思路把L中为x的元素直接用后面元素给他覆盖掉,然后最后我们把顺序表长度减少L的个数

实现代码

void Del_x(SqList& L, Elemtype x)
{
	int k, i=0;
	while (i < L.Lenth)
	{
		if (L.data[i] == x)
			k++;
		else
			L.data[i - k] = L.data[i];
		i++;
}
	L.Lenth = L.lenth-k;
}
posted @ 2022-10-24 21:12  出色的你  阅读(47)  评论(0)    收藏  举报