如何删除线性顺序表中比e小的元素值

一、写一算法从顺序表中删除洎第i个元素开始的k个元素。 (按照下标删除)

方法:循环控制删除即可

二、已知长度为n的线性表A采用顺序存储结构请写一时间复杂度为O(n),空间复杂度为O(1)的算法删除线性表中所有值为item的数据元素。(按照元素进行删除)

方法:一边遍历一边按照元素删除

}
/*程序的版权和版本声明部分:
*对任务及求解方法的描述部分:
*问题描述:线性顺序表的简单应用
*程序输入:n和n个元素最后输入要删除的x
*程序输出:删除x后的线性表
*问题分析:用number记录顺序表L中等于x的元素个数,一边扫描
 K一边统计number值并将不为x的元素前移number个
 位置,最后修改L长度
*算法设计:算法中只扫描顺序表1次,时间复杂度为O(n)
 空间复杂度为O(1)。
 i--; //将顺序表逻辑序号转为物理序号
 i--; //将顺序表逻辑序号转为物理序号
 






}

该程序实现了一个顺序表的基本操作:

//操作结果:构建一个新的顺序表为顺序表分配一个预定义大小的数组空间,并为顺序表当前的长度设置为“0” //初始条件:顺序表L巳经存在 //操作结果:将m个元素一次加入到顺序表L中 //操作结果:在L中的第i个位置前插入新的数据元素eL的长度+1 //删除线性表中的元素 //操作结果:删除L的第i个数据元素,并用e返回其值L的长度减1 //初始条件:线性表L已存在 //操作结果:打印顺序表 //初始条件:线性表L已存在 //操作结果:若順序表中存在数据元素e,则返回e在顺序表中L中第一次出现的位序否则返回0 //初始条件:顺序表L已存在 //操作结果:返回顺序表L的长度 printf("输请入え素,中间使用空格分离:"); printf("输入插入位置和元素中间使用空格分离:"); printf("请输入要删除元素的位置:");
}

我要回帖

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信