NOJ1004线性表操作
来源:互联网 发布:简述数据库的隔离级别 编辑:程序博客网 时间:2024/04/29 23:19
/*线性表操作时间限制(普通/Java) : 1000 MS/ 3000 MS 运行内存限制 : 65536 KByte总提交 : 3107 测试通过 : 661 描述线性表是n个元素的有序集合(n30),n是线性表中元素的个数,称为线性表的长度。可以用一组地址连续的存储单元依次存储线性表中元素,采用这种存储方式的线性表称为顺序表。请在顺序表上实现运算,实现顺序表的逆置,删除表中所有元素值等于x的元素。输入三组数据,顺序表元素类型分别为整型、字符型和实型。每一组第一行给出元素数目n(0<n≤1000),第二行给出元素数值,第三行给出待删除的元素。输出三组数据,每一组第一行为逆置后的顺序表元素,第二行是在此基础上删除指定元素后的顺序表元素样例输入81 2 3 7 5 6 7 8 73a c mh41.2 3.4 5.6 7.81.2样例输出8 7 6 5 7 3 2 1 8 6 5 3 2 1 m c a m c a 7.8 5.6 3.4 1.2 7.8 5.6 3.4 提示该题属于南京邮电大学《数据结构A》实验一中的内容,验证的是课本代码,每一个输出元素后均有一个空格(包括最后一个元素),请慎重解答。题目来源CHENZ*/#include<stdio.h>#include<string.h>void opp(char a[],int i,int n);void OPP(char a[],char b[],int i,int n,int I);const int N = 5000;int main(){ int i=0,n,I=0,P=3; char a[N],b[100],ch; while(P--) {scanf("%d",&n); i=0,I=0; memset(a,0,sizeof(a)); memset(b,0,sizeof(b)); getchar(); while((ch=getchar())!='\n')a[i++]=ch; do if(a[i-1]==' ') a[--i]=0; while(a[i-1]==' '); i--; //printf("%c",*(i+a)); opp(a,i,n); while((ch=getchar())!='\n') b[I++]=ch; OPP(a,b,i,n,I); } return 0;}void opp(char a[],int i,int n){ char*p=a+i; char*temp=p; int j,first=1; while(n--) { //temp=p; for(j=0;;) { j++; if(temp==a||*(--temp)==' ')break; } if(first) { first=0; for(;j>=1;j--) printf("%c",*(p-j+1)); } else for(;j>=0;j--) printf("%c",*(p-j)); p=(--temp); } printf(" "); //printf("*"); printf("\n");}void OPP(char a[],char b[],int i,int n,int I){ char*p=a+i; char*temp=p; int j,first=1,o=0,J,NP,ok=1; while(n--) { //temp=p; o=0; //printf("%d",b[1]); for(j=0;;) { j++; if(temp==a||*(--temp)==' ')break; } J=j; NP=0; //printf("%d%d!",I,J); while(J--) { if(j!=I||*(p-J)!=b[o++]){NP=1;break;} } //printf("%d!",NP); //printf("%d",NP); if(NP==1) { if(first) { first=0; for(;j>=1;j--) printf("%c",*(p-j+1)); //printf(""); } else if(ok==1) for(;j>=0;j--) printf("%c",*(p-j)); else if(ok==0) { for(;j>=1;j--) printf("%c",*(p-j+1)); // printf("*"); ok=1; } p=(--temp); } else if(NP==0) { if(first) first=0,ok=0; //printf("ok=%d",ok); p=(--temp); } } printf(" "); //printf("*"); printf("\n");}//WA了,不知道为什么,测了很多很多数据怀疑是NOJ数据有问题。。有输入数据末空格之类的情况,写这么麻烦是,试图用getchar读浮点型,整型,char型,一步到位,练练能力。。的确写了4个小时。//没救了,noj样例输入第二行多了一个空格。。。 结果注意到了这点我也无法保证其他数据的坑。。。反正还是wa在test 1 了。
0 0
- NOJ1004线性表操作
- 线性表操作
- 线性表操作
- 数据结构--线性表操作
- 线性表的操作
- C++线性表操作
- 线性表操作
- C++线性表操作
- 线性表操作
- ACM 线性表操作
- 线性表操作练习
- 线性表基本操作
- 线性表的操作
- 线性表操作
- 线性表简单操作
- 线性表操作
- 线性表操作
- 1004-线性表操作
- Evacuation Plan - POJ 3963 dp滚动数组
- NOJ上的大数相加
- 选购电脑填补知识
- winDbg定位异常崩溃和线程死锁三步骤
- 一次遍历, 查找不定长链表中点
- NOJ1004线性表操作
- 正则表达式学习笔记(三)
- HDOJ1114 Piggy-Bank[完全背包]
- 在BroadcastReceiver中启动Activity的问题
- HDUOJAlexandra and Prime Numbers
- django 安装小结
- 关系数据库 非关系数据库
- javaweb开发中常遇见的乱码问题
- android中Http