Problem A: 删除区间内的元素(线性表)

Time Limit: 1 Sec  Memory Limit: 2 MB
Submit: 75  Solved: 24
[Submit][Status][Web Board]

Description

若一个线性表L采用顺序存储结构,其中元素都为整数。设计一个算法,删除元素值在[x,y]之间的所有元素,要求算法的时间复杂度为O(n),空间复杂度为O(1). 

顺序表定义为:

typedef struct
{
ElemType data[SizeMax];
int length;
} SqList;

需编写的算法为:

bool Delete(SqList *&L,ElemType x,ElemType y);

注意:只需提交删除区间内元素的算法Delete部分。

Input

输入的第一行代表线性表的长度n,n<=SizeMax。第二行输入n个元素并插入到线性表中,第三行输入两个整数x,y,确定区间。

Output

输出的数据占两行,第一行是删除之后线性表的长度length,接下来的一行是线性表中的每个元素。

Sample Input

10
5 3 6 2 1 9 8 7 4 0
3 7

Sample Output

5
2 1 9 8 0

HINT

1、请使用C++编译并提交


2、只需提交删除区间内元素算法的部分


3、注意区间端点值是否合理

#include <stdio.h> 
#include <stdlib.h> 
#define SizeMax 10000 
typedef int ElemType; 
typedef struct
{ ElemType data[SizeMax]; int length; 
} SqList; 
void CreateList(SqList *&L,ElemType n) 
{ if(n>SizeMax)return; L=(SqList*)malloc(sizeof(SqList)); for(int i=0; i<n; i++) scanf("%d",&L->data[i]); L->length=n; 
}bool Delete(SqList *&L,ElemType x,ElemType y) 
{ SqList *p=L; if(x>y)return false; int n=p->length; for(int i=0,j=0;i<n;i++) { if(p->data[i]>=x&&p->data[i]<=y)p->length--; else{ p->data[j]=p->data[i]; j++; } } return true; 
} 
void Print(SqList *L) 
{ int i; printf("%d\n",L->length); for(i=0; i<L->length; i++) printf(i!=L->length-1?"%d ":"%d\n",L->data[i]); 
} 
void DestroyList(SqList *&L) 
{ free(L); 
} 
int main() 
{ SqList *L; ElemType n,x,y; scanf("%d",&n); CreateList(L,n); scanf("%d%d",&x,&y); if(Delete(L,x,y)) Print(L); DestroyList(L); return 0; 
} 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/news/536216.shtml
繁体地址,请注明出处:http://hk.pswp.cn/news/536216.shtml
英文地址,请注明出处:http://en.pswp.cn/news/536216.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

问题 B: 调整表中元素顺序(线性表)

问题 B: 调整表中元素顺序&#xff08;线性表&#xff09; 时间限制: 1 Sec 内存限制: 2 MB提交: 28 解决: 11[提交][状态][讨论版]题目描述 若一个线性表L采用顺序存储结构存储&#xff0c;其中所有元素都为整数。设计一个算法&#xff0c;将所有小于0的元素移到所有大于0的…

Problem C: 顺序表基本运算(线性表)

问题 C: 顺序表基本运算&#xff08;线性表&#xff09; 时间限制: 1 Sec 内存限制: 128 MBDescription 编写一个程序&#xff0c;实现顺序表的各种基本运算&#xff08;假设顺序表的元素类型为char&#xff09;&#xff0c;主函数已给出&#xff0c;请补充每一种方法。 1、初…

Problem D: 链表的基本运算(线性表)

Problem D: 链表的基本运算&#xff08;线性表&#xff09; Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 18 Solved: 10Description 编写一个程序&#xff0c;实现链表的各种基本运算&#xff08;假设顺序表的元素类型为char&#xff09;&#xff0c;主函数已给出&#…

Problem B: 结构体---职工信息结构体

Problem B: 结构体---职工信息结构体 Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 504 Solved: 306编写程序&#xff0c;定义一个存放职工信息的结构体类型&#xff0c;职工信息包括职工姓名、工作年限、工资总额。初始化5名职工的信息&#xff0c;对工作年限超过30年的…

Problem C: 结构体---点坐标结构体

Problem C: 结构体---点坐标结构体 Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 663 Solved: 444[Submit][Status][Web Board]Description 定义一个表示点坐标的结构体&#xff0c;输入两个点的坐标&#xff0c;输出这两个点中点的坐标 Input 第一个点的坐标&#xff08…

Problem D: 编程题B-向量的数量积

Problem D: 编程题B-向量的数量积 Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 164 Solved: 148Description 已知两个非零向量a&#xff08;x1&#xff0c;y1&#xff09;&#xff0c;b&#xff08;x2&#xff0c;y2&#xff09;&#xff0c;则有abx1x2y1y2&#xff0c;…

Problem E: 高于均分的学生

Problem E: 高于均分的学生 Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 67 Solved: 45Description 输入n(<100)个学生的姓名、学号和成绩&#xff0c;将其中高于平均成绩的姓名、学号和成绩输出。 Input 第一行为学生人数 n 第二行到第n1行&#xff0c;每行一个学生…

Problem E: 建立链表(线性表)

Problem E: 建立链表(线性表) Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 323 Solved: 207Description &#xff08;线性表&#xff09;设键盘输入n个英语单词&#xff0c;输入格式为n, w1, w2, …,wn,其中n表示随后输入英语单词个数&#xff0c;试编一程序&#xff0c…

Problem A: 判断操作是否合法(栈和队列)

Problem A: 判断操作是否合法&#xff08;栈和队列&#xff09; Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 67 Solved: 22Description 假设以I和O分别表示进栈和出栈操作&#xff0c;栈的初态和终态均为空&#xff0c;进栈和出栈的操作序列可表示为仅由I和O组成的序列…

Problem G: 函数---判断日期(年月日)是否合法

Problem G: 函数---判断日期&#xff08;年月日&#xff09;是否合法 Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 566 Solved: 240Description 编写函数isValid_date&#xff0c;函数声明如下: int isValid_date(int year,int month,int day); //判断日期&#xff08;年…

Problem H: 今年第几天?

Problem H: 今年第几天&#xff1f; Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 723 Solved: 310Description 定义一个函数&#xff0c;其参数为年、月、日的值&#xff0c;返回这一天为该年的第几天。要求在main函数中输入年月日&#xff0c;然后调用这个函数求值&…

Problem I: 函数---判断某年某月某日是这一年中的第几天

Problem I: 函数---判断某年某月某日是这一年中的第几天 Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 457 Solved: 194Description 在主程序(main)中输入某年某月某日&#xff0c;例如2012 9 18(年月日之间用空格隔开)&#xff0c; 调用函数dayth来得到某年某月某日是这…

Problem C: 括号匹配(栈和队列)

Problem C: 括号匹配&#xff08;栈和队列&#xff09; Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 76 Solved: 18[Submit][Status][Web Board]Description 假设一个表达式中只允许包含三种括号&#xff1a;圆括号“(”和“)”&#xff0c;方括号“[”和“]”和花括号“…

Problem D: 栈的基本运算(栈和队列)

Problem D: 栈的基本运算&#xff08;栈和队列&#xff09; Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 43 Solved: 15[Submit][Status][Web Board]Description 编写一个程序&#xff0c;实现顺序栈的各种基本运算&#xff0c;主函数已给出&#xff0c;请补充每一种方法…

Problem B: C语言习题 矩阵元素变换

Problem B: C语言习题 矩阵元素变换 Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 942 Solved: 558[Submit][Status][Web Board]Description 将一个nn(2<n<10,n为奇数)的矩阵中最大的元素放在中心&#xff0c;4个角分别放4个最小的元素&#xff08;按从左到右、从上…

Problem D: 删出多余的空格

Problem D: 删出多余的空格 Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 667 Solved: 308[Submit][Status][Web Board]Description 小平在给弟弟检查英语作业时时&#xff0c;发现每个英语句子单词之间的空格个数不等&#xff0c;请你编程帮他把句子中多余的空格去掉&am…

Problem D: 顺序串的基本运算

Problem D: 顺序串的基本运算 Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 73 Solved: 28[Submit][Status][Web Board]Description 编写一个程序&#xff0c;实现顺序串的各种基本运算&#xff0c;主函数已给出&#xff0c;请补充每一种方法。 1、建立串s"abcdefgh…

骨牌铺方格

骨牌铺方格 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 46495 Accepted Submission(s): 22470 Problem Description在2n的一个长方形方格中,用一个1 2的骨牌铺满方格,输入n ,输出铺放方案的总数.例如n3时…

递归思想完成n皇后问题

已经很长时间不敲代码了&#xff0c;感觉自己越来与颓废&#xff0c;所以现在又想做回一名苦逼的程序员&#xff0c;开启自己的代码之路。 我是根据视频敲的&#xff0c;没有题目&#xff0c;先看个四皇后问题吧。 所谓4皇后问题就是求解如何在44的棋盘上无冲突的摆放4个皇后棋…

POJ1163 数字三角形

1.题目信息&#xff08;http://poj.org/problem?id1163&#xff09; The TriangleTime Limit: 1000MS Memory Limit: 10000KTotal Submissions: 30397 Accepted: 17973 Description 7 3 8 8 1 0 2 7 4 4 4 5 2 6 5(Figure 1) Figure 1 shows a number tri…