问题及代码:
/*
* Copyright(c) 2016, 烟台大学计算机与控制工程学院
* All rights reserved.
* 文件名称:
* 作 者:路亚丽
* 完成日期:2016年 9月 17日
* 版 本 号:v1.0
*
* 问题描述: 删除元素在[x, y]之间的所有元素,要求算法的时间复杂度为O(n),空间复杂度为O(1);
* 输入描述:无
* 程序输出:删除后的表
*/
#include "list.h"
#include <stdio.h>
//删除线性表中,元素值在x到y之间的元素
void delx2y(SqList *&L, ElemType x, ElemType y)
{
int k=0,i; //k记录非x的元素个数
ElemType t;
if(x>y)
{
t=x;
x=y;
y=t;
}
for (i=0; i<L->length; i++)
if (L->data[i]<x || L->data[i]>y ) //复制不在[x, y]之间的元素
{
L->data[k]=L->data[i];
k++;
}
L->length=k;
}
//用main写测试代码
int main()
{
SqList *sq;
ElemType a[10]= {1,2,3,4,5,6,7,8,9,0};
CreateList(sq, a, 10);
printf("删除前 ");
DispList(sq);
delx2y(sq, 4, 7);
printf("删除后 ");
DispList(sq);
return 0;
}运行结果:
知识点总结:
顺序表的查找和删除。
学习心得:
应该熟悉掌握顺序表的基本操作。
本文介绍了如何在顺序表中删除指定区间[x, y]内的所有元素,通过实例展示了操作过程,并对顺序表的查找和删除操作进行了知识点总结,强调熟练掌握顺序表基本操作的重要性。"
113458997,10541982,Java并发更新MySQL数据与解决方案,"['Java', '数据库并发', 'MySQL', '分布式系统', '事务管理']
删除元素在x, y之间的所有元素&spm=1001.2101.3001.5002&articleId=52564915&d=1&t=3&u=1e4d11daba5c43b1812d1418aea3db42)
240

被折叠的 条评论
为什么被折叠?



