顺序表的合并

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验题目:顺序表的合并

一、实验目的

(1)、掌握顺序表的基本操作

(2)、理解并分析算法的时间复杂度

二、实验内容

实现两个有序(从小到大)顺序表合并成为一个顺序表,合并后的结果放在第一个顺序表中(假设这两个有序顺序表中没有相同的元素)。

三、设计与编码

1、基本思想

合并两数组再用冒泡法从小到大排序

2、C++编码

#include

using namespace std;

class as

{

private:

int length1;

int length2;

int arr1[21];

int arr2[21];

int length;

public:

as(int len1,int a[],int len2,int b[])

{

int i;

length1=len1;

length2=len2;

for(i=0;i

arr1[i]=a[i];

for(i=0;i

arr2[i]=b[i];

}

int intser()

{

length=length1+length2;

int i,j,t;

for(i=0;i

arr1[length1+i]=arr2[i];

for(i=0;i

for(j=length-1;j>i;j--)

if(arr1[j]

{

t=arr1[j-1];

arr1[j-1]=arr1[j];

arr1[j]=t;

}

}

return length;

}

void show()

{

int i;

cout<

for(i=1;i

cout<<" "<

}

};

int main()

{

int n,y;

cin>>n;

while(n--)

{

int i,n1,n2,a[21],b[21];

cin>>n1;

for(i=0;i

cin>>a[i];

cin>>n2;

for(i=0;i

cin>>b[i];

if(n1+n2>20)

{

cout<<"not enough"<

return 0;

}

as A(n1,a,n2,b);

y=A.intser();

cout<

A.show();

cout<

}

}

四、调试与运行

1、调试时遇到的主要问题及解决

少了“;”,“字母大小写没注意”

2、运行结果(输入及输出,可以截取运行窗体的界面)

五、实验心得

通过这次实验,我认识到了我的不足,也懂得了很多。在之前,只是一直盲目的跟着书本上的东西打,就像打字一样,不用思考,也不会实际应用。通过这次实验,让我们有了实践的机会。同时也复习了一些C++的知识,让我更加熟悉这些简单语句,也通过书上的很多错误来敲醒我的盲从,学习必须脚踏实地,多写程序,多实践,才是进步的法门。从一次次实验的失败到一次次找办法解决冲突,让我更加学会如何借助帮助文件以及和同学交流来解决问题。这次实验我受益匪浅啊!

谢谢学校给我提供了这么好的环境,也谢谢老师对我们的细心指导,老师您辛苦了!

相关文档
最新文档