删除顺序表中区间内的元素
Problem Description
设计一个算法,删除顺序表中区间 [s, t) 内的元素,使得表中所有元素的值均不在给定区间内。其中顺序表的动态分配用C语言描述如下:
#define InitSize 100 //表长度的初始定义 typedef int DataType; //定义表元素的数据类型 typedef struct { //顺序表的定义DataType *data; //指示动态分配数组的指针int maxSize, n; //数组中最大容量和当前个数 }SeqList;
Input Description
有多组测试数据,在每组测试数据的第一行输入顺序表中元素的个数 n;如果n不为0,第二行输入n 个数,用空格隔开;第三行输入两个数,分别表示 s 和 t 的值,用空格隔开。
Output Description
如果n为0,输出 EMPTY;
如果n不为0,但 s 和 t 的值非法,输出 ERROR;
其他情况,输出删除后顺序表中元素的值。
Sample Input
8 -6 3 -5 -2 12 10 1 19 -5 10 0 5 1 2 3 4 5 3 2 6 -3 8 -1 5 13 7 -3 15
Sample Output
-6 12 10 19 EMPTY ERROR EMPTY
Hint
1. 注意区间为 [s, t)。
2. 注意输出的格式:换行或空格。
#include<stdio.h>
struct node//创建顺序表
{int data[200];int length;
}La,Lb;//la用来读入,lb用来存储
int main()
{int n;while(~scanf("%d",&n))//循环输入{if(n==0){printf("EMPTY\n");continue;}else{int i,j=0;for(i=0;i<n;i++){scanf("%d",&La.data[i]);}La.length=n;//将la赋值为n,lb为0Lb.length=0;int s,t;scanf("%d %d",&s,&t);if(s>=t)//s大于和等于t都是非法的{printf("ERROR\n");continue;}for(i=0;i<n;i++){if(La.data[i]<s||La.data[i]>=t)//将区间以外的放入lb{Lb.data[j]=La.data[i];Lb.length++;j++;}}if(Lb.length==0)//如果区间过大没有元素了,也输出EMPTY{printf("EMPTY\n");}else{for(i=0;i<Lb.length;i++){printf("%d ",Lb.data[i]);}printf("\n");}}int k=0;for(k;k<200;k++)//刷新{La.data[k]=0;Lb.data[k]=0;}}
}
删除顺序表中区间内的元素相关推荐
- 删除顺序表中指定范围的元素
题目:从顺序表中删除给定区间s~t之间的值,若给定区间不合理或顺序表为空,则显示错误信息并退出 分析:此题与上一题大同小异,只不过,循环体内部的判定条件有了变化,我们仍然可以采用上一题的思路进行编写: ...
- 删除顺序表中下标i~j的所有元素
删除顺序表中下标i~j的所有元素(包括i.j),假定i.j合法 void delete(SqList &L,int i,int j) {while(j < L.length-1){L.d ...
- 数据结构:删除顺序表中小于min和大于max的数(不需要从大到小排列依然可以)
1.题目要求: 设计一个算法,删除递增有序链表中值小于min和大于max的所有元素 2.题目分析 依次找到对应元素,而后进行删除. int listDelete(SqList& L, int ...
- 删除顺序表中重复元素,并按照原序输出
问题描述:从顺序表中删除重复的元素,并使得剩余元素间的相对次序保持不变. 解决思路: PS:将结果表归为一个新表,理解较为容易(接下来以旧表和新表相称) ①先定义新表的长度和迭代器(初始长度为1,迭代 ...
- 删除顺序表中指定值的所有元素(C++,vector)
描述 利用顺序表表示一个包括n个整数的序列,请实现一个时间复杂度为O(n),空间复杂度为O(1)的算法,该算法可以删除表中所有值为item的元素. 输入 多组数据,每组数据有三行,第一行为顺序表的长度 ...
- 第30关:删除顺序表中指定值的所有元素
任务描述 本关任务:利用顺序表表示一个包括n个整数的序列,请实现一个时间复杂度为O(n),空间复杂度为O(1)的算法,该算法可以删除表中所有值为item的元素. 编程要求 输入 多组数据,每组数据有三 ...
- 删除顺序表中所有的的重复数据
顺序表的结果设计如下所示 顺序表的结构体设计和头节点的结构体设计如下链接: 顺序表的插入_神厨小福贵!的博客-CSDN博客按位置插入我们知道 顺序表的特点就是 无论在逻辑上还是地址上都是连续的先看顺序 ...
- 第3周实践项目4 -顺序表的应用 删除顺序表中元素为x的值
/* copyright (t) 2017,烟台大学计算机学院 *All rights reserved. *文件名称:1.cpp *作者:邵雪源 *完成日期:2017年9月14日 *问题描述:删除元 ...
- 算法:删除顺序表中重复的元素
//删除数组中重复的元素 //思路:通过起始位置的元素,逐个和后面的元素进行比较,找到相同的元素后执行删除操作.没有发现执行第二次循环void purge(int a[], int len) {int ...
- 设计一个算法,删除顺序表中下标i~j(i<=j,包括i和j)的所有元素,假定i和j是合法的。
#include <iostream> using namespace std;void delElem(int arr[],int &length,int i,int j){in ...
最新文章
- SpringBoot中@ControlAdvice的使用
- Thread的start()和join()方法
- 为Liferay Server分配Perm,Heap Size
- 浅谈多目标跟踪中的相机运动
- Web前端技术分享:Javascript中的内置对象数组讲解
- 第一个vue.js项目
- STM32F10x_StdPeriph_Lib_V3.5.0库与系统滴答定时器(Systick)
- ifconfig输出网口和ip
- stone (组合数学 + Lucas定理)
- 抛开当下的迷惘,IT技术人的发展之路该怎么走?
- Android WebView实现长截图
- 根据手机的分辨率和屏幕尺寸计算手机屏幕的PPI
- 2012-2-25 《数据结构》读书笔记3 栈之迷宫求解
- 运营笔记:一个新公众号怎么吸粉?看看这位大神怎么做的!
- office办公所有版本齐全
- photoshop中关于配置的15条技巧
- Kaspersky Anti-Virus NDIS Filter导致的网络故障一例
- 因子分析python代码_关于「因」的诗词(649首)_诗词名句网
- 钉钉调用新版待办任务
- Spring分析之IOC原理
热门文章
- 贴心的特效制作软件,抖音特效开放平台就能找到
- MapReduce中Shuffle机制的学习案例——房屋租赁信息
- NOIP数学学习笔记 Sakura_xyz
- 用 Python 切换输入法
- 微信公众平台开发3-微信服务器IP接口实例(含源码)
- python词频统计西游记_基于Python第三方插件实现西游记章节标注汉语拼音
- java 生成word 分页,jsp转word + 分页
- vue检测文本域字数变化
- win10计算机管理器在哪,Windows10如何打开资源管理器?Windows10任务管理器在哪?...
- C#支付宝扫码支付代码完整版