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;}}
}

删除顺序表中区间内的元素相关推荐

  1. 删除顺序表中指定范围的元素

    题目:从顺序表中删除给定区间s~t之间的值,若给定区间不合理或顺序表为空,则显示错误信息并退出 分析:此题与上一题大同小异,只不过,循环体内部的判定条件有了变化,我们仍然可以采用上一题的思路进行编写: ...

  2. 删除顺序表中下标i~j的所有元素

    删除顺序表中下标i~j的所有元素(包括i.j),假定i.j合法 void delete(SqList &L,int i,int j) {while(j < L.length-1){L.d ...

  3. 数据结构:删除顺序表中小于min和大于max的数(不需要从大到小排列依然可以)

    1.题目要求: 设计一个算法,删除递增有序链表中值小于min和大于max的所有元素 2.题目分析 依次找到对应元素,而后进行删除. int listDelete(SqList& L, int ...

  4. 删除顺序表中重复元素,并按照原序输出

    问题描述:从顺序表中删除重复的元素,并使得剩余元素间的相对次序保持不变. 解决思路: PS:将结果表归为一个新表,理解较为容易(接下来以旧表和新表相称) ①先定义新表的长度和迭代器(初始长度为1,迭代 ...

  5. 删除顺序表中指定值的所有元素(C++,vector)

    描述 利用顺序表表示一个包括n个整数的序列,请实现一个时间复杂度为O(n),空间复杂度为O(1)的算法,该算法可以删除表中所有值为item的元素. 输入 多组数据,每组数据有三行,第一行为顺序表的长度 ...

  6. 第30关:删除顺序表中指定值的所有元素

    任务描述 本关任务:利用顺序表表示一个包括n个整数的序列,请实现一个时间复杂度为O(n),空间复杂度为O(1)的算法,该算法可以删除表中所有值为item的元素. 编程要求 输入 多组数据,每组数据有三 ...

  7. 删除顺序表中所有的的重复数据

    顺序表的结果设计如下所示 顺序表的结构体设计和头节点的结构体设计如下链接: 顺序表的插入_神厨小福贵!的博客-CSDN博客按位置插入我们知道 顺序表的特点就是 无论在逻辑上还是地址上都是连续的先看顺序 ...

  8. 第3周实践项目4 -顺序表的应用 删除顺序表中元素为x的值

    /* copyright (t) 2017,烟台大学计算机学院 *All rights reserved. *文件名称:1.cpp *作者:邵雪源 *完成日期:2017年9月14日 *问题描述:删除元 ...

  9. 算法:删除顺序表中重复的元素

    //删除数组中重复的元素 //思路:通过起始位置的元素,逐个和后面的元素进行比较,找到相同的元素后执行删除操作.没有发现执行第二次循环void purge(int a[], int len) {int ...

  10. 设计一个算法,删除顺序表中下标i~j(i<=j,包括i和j)的所有元素,假定i和j是合法的。

    #include <iostream> using namespace std;void delElem(int arr[],int &length,int i,int j){in ...

最新文章

  1. SpringBoot中@ControlAdvice的使用
  2. Thread的start()和join()方法
  3. 为Liferay Server分配Perm,Heap Size
  4. 浅谈多目标跟踪中的相机运动
  5. Web前端技术分享:Javascript中的内置对象数组讲解
  6. 第一个vue.js项目
  7. STM32F10x_StdPeriph_Lib_V3.5.0库与系统滴答定时器(Systick)
  8. ifconfig输出网口和ip
  9. stone (组合数学 + Lucas定理)
  10. 抛开当下的迷惘,IT技术人的发展之路该怎么走?
  11. Android WebView实现长截图
  12. 根据手机的分辨率和屏幕尺寸计算手机屏幕的PPI
  13. 2012-2-25 《数据结构》读书笔记3 栈之迷宫求解
  14. 运营笔记:一个新公众号怎么吸粉?看看这位大神怎么做的!
  15. office办公所有版本齐全
  16. photoshop中关于配置的15条技巧
  17. Kaspersky Anti-Virus NDIS Filter导致的网络故障一例
  18. 因子分析python代码_关于「因」的诗词(649首)_诗词名句网
  19. 钉钉调用新版待办任务
  20. Spring分析之IOC原理

热门文章

  1. 贴心的特效制作软件,抖音特效开放平台就能找到
  2. MapReduce中Shuffle机制的学习案例——房屋租赁信息
  3. NOIP数学学习笔记 Sakura_xyz
  4. 用 Python 切换输入法
  5. 微信公众平台开发3-微信服务器IP接口实例(含源码)
  6. python词频统计西游记_基于Python第三方插件实现西游记章节标注汉语拼音
  7. java 生成word 分页,jsp转word + 分页
  8. vue检测文本域字数变化
  9. win10计算机管理器在哪,Windows10如何打开资源管理器?Windows10任务管理器在哪?...
  10. C#支付宝扫码支付代码完整版