博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
顺序线性表的操作 (4人)
阅读量:5797 次
发布时间:2019-06-18

本文共 2646 字,大约阅读时间需要 8 分钟。

顺序线性表的操作 (4人)

⑴ 问题描述:
已知两长度相同的定长数组,他们分别存放相同个数的整数。
实现要求:
⑴ 两个数组大小的比较。
若第一个数组中的数比第二个数组中的数大的个数大于第一个数组中的数比第二个数组中的数小的个数,
认为第一个数组大;
若第一个数组中的数比第二个数组中的数大的个数小于第一个数组中的数比第二个数组中的数小的个数,
认为第一个数组小;
若第一个数组中的数比第二个数组中的数大的个数等于第一个数组中的数比第二个数组中的数小的个数,
认为两个数组相等。
⑵ 有序序列数据输入模块,数据从键盘输入且是任意顺序,进行排序使其成为有序。
⑶ 将排序后的第二个数组序列中的数逐个插入到前一个数组序列中,完成后两个数组中的数是非递减的,并且第一个数组中所有的数都不大于第二个数组中任意一个数。要求:不能另开辟数组,不能对任意一个数组进行排序操作。
⑷ 设计一个菜单,上述操作要求都作为菜单中的主要菜单项。

 

1 #include
2 #include
3 #include
4 using namespace std; 5 6 const int maxlen=1000;//线性表的最大长度 7 8 struct List 9 { 10 int Data[maxlen];//存放数据 11 int CurNum;//当前线性表 12 }; 13 14 void Intialize( List &A)//线性表初始化 15 { 16 A.CurNum = 0;//线性表元素个数为0 17 } 18 19 int Length(List &A)//求表长度的实现 20 { 21 return A.CurNum; 22 } 23 24 int Insert( List &A,const int i,const int x)//插入元素运算对应的函数 25 { 26 if(A.CurNum==maxlen)printf("溢出!\n");//溢出,不能插入 27 if(i<1||i>Length(A)+1)printf("插入范围有错!\n");//插入范围有错 28 else { 29 for(int j=A.CurNum-1;j>=i-1;j--){ 30 A.Data[j+1]=A.Data[j]; 31 } 32 A.Data[i-1]=x; 33 A.CurNum++; 34 return 0; 35 } 36 } 37 int Get_int(List &A,const int i,int &x)//按序号取元素运算 38 { 39 if(i<=0||i>A.CurNum)printf("序号错误!\n"); 40 else { 41 x=A.Data[i-1]; 42 return 0; 43 } 44 } 45 46 47 //两个数组进行比较大小 48 void CompareArray(int ArrayA[],int ArrayB[],int N) 49 { 50 int i,DataA,DataB; 51 52 int NumA = 0;//线性表A中元素 比线性表B中元素大的个数 53 int NumB = 0;//线性表A中元素 比线性表B中元素小的个数 54 55 List A,B; 56 57 Intialize(A);//初始化 58 Intialize(B);//初始化 59 for(i=0;i
DataB)//线性表A 中的元素大 72 { 73 NumA++; 74 }else if(DataA
NumB) 79 { 80 printf("第一个数组大!\n"); 81 }else if(NumA
=i;j--){ 96 Get_int(A,j+1,data1);//取线性表A 中的元素 97 Get_int(A,j,data2);//取线性表A 中的元素 98 if(data1
=i;j--){111 Get_int(A,j+1,data1);//取线性表A 中的元素112 Get_int(A,j,data2);//取线性表A 中的元素113 if(data1>data2){114 temp=A.Data[j-1];115 A.Data[j-1]=A.Data[j];116 A.Data[j]=temp;117 exchange=true;118 }119 }120 i++;121 }while((i<=A.CurNum-1)&&(exchange=true));122 }123 printf("排序后的数据为:");124 for(i=0;i
k)array[j]++;190 }191 array[count] = k;192 break;193 }194 }195 if(flags==false)//插在最后面196 {197 Insert(C,Length(C)+1,A.Data[i]);198 array[count] = Length(C);199 }200 //printf(" num%d\n",array[count]);201 count++;202 }203 204 printf("合并后的线性表:");205 for(int i=0;i
C.Data[array[j]])220 {221 temp = C.Data[array[j]];222 }223 }224 for(j=i;j

 

转载于:https://www.cnblogs.com/minmsy/p/5080903.html

你可能感兴趣的文章
Android开发之线性布局详解(布局权重)
查看>>
WCF
查看>>
remoting方式
查看>>
django 目录结构修改
查看>>
win8 关闭防火墙
查看>>
OAF_文件系列2_实现OAF导出CSV格式文件ExportButton(案例)
查看>>
Android实例-录音与回放(播放MP3)(XE8+小米2)
查看>>
构建自己的PHP框架--抽象Controller的基类
查看>>
CSS——(2)与标准流盒模型
查看>>
MYSQL 基本SQL语句
查看>>
Codeforces 451E Devu and Flowers(容斥原理)
查看>>
P2P行业专业术语(最全)
查看>>
C#中的Marshal
查看>>
网站发的文章有收录 但是没有排名怎么处理
查看>>
linux命令:ls
查看>>
Using RequireJS in AngularJS Applications
查看>>
hdu 2444(二分图最大匹配)
查看>>
shell编程笔记六:实现ll命令
查看>>
【SAP HANA】关于SAP HANA中带层次结构的计算视图Cacultation View创建、激活状况下在系统中生成对象的研究...
查看>>
[nodejs] nodejs开发个人博客(五)分配数据
查看>>