函数题:单链表 - 19. 按值删除
请编写函数,删除线性表中所有与指定值相同的数据元素。
#### 函数原型
c
void LListRemoveValue(LLIST *list, const LELEMENT *element);
说明:参数 list 是指示线性表(单链表)的指针,element 是指向数据元素的指针。函数将删除线性表中所有与指定值相同的数据元素。
修改主函数,对以上函数进行测试。
c
int main()
{
LELEMENT x;
LLIST a;
LListCreate(&a);
LListInput(&a);
LElementInput(&x);
LListRemoveValue(&a, &x);
LListOutput(&a);
putchar('\n');
LListDestroy(&a);
return 0;
}
#### 输入样例
in
( 2.8, 4.7, 5.2, 2.8, 3.6, 2.8, 2.8, 5.2, 7.2, 2.8 )
2.8
#### 输出样例
out
( 4.7, 5.2, 3.6, 5.2, 7.2 )
要求:时间复杂度为 $$O(n)$$,空间复杂度为 $$O(1)$$。
答案:若无答案欢迎评论
#### 函数原型
c
void LListRemoveValue(LLIST *list, const LELEMENT *element);
说明:参数 list 是指示线性表(单链表)的指针,element 是指向数据元素的指针。函数将删除线性表中所有与指定值相同的数据元素。
修改主函数,对以上函数进行测试。
c
int main()
{
LELEMENT x;
LLIST a;
LListCreate(&a);
LListInput(&a);
LElementInput(&x);
LListRemoveValue(&a, &x);
LListOutput(&a);
putchar('\n');
LListDestroy(&a);
return 0;
}
#### 输入样例
in
( 2.8, 4.7, 5.2, 2.8, 3.6, 2.8, 2.8, 5.2, 7.2, 2.8 )
2.8
#### 输出样例
out
( 4.7, 5.2, 3.6, 5.2, 7.2 )
要求:时间复杂度为 $$O(n)$$,空间复杂度为 $$O(1)$$。
答案:若无答案欢迎评论