- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
有序顺序表合并
成 绩实验一
成 绩
实验题目:有序顺序表的合并
一、实验目的
掌握顺序表的基本操作
理解并分析算法的时间复杂度
二、实验内容
实现两个有序(从小到大)顺序表合并成为一个有序顺序表,合并后的结果放在第一 个顺序表中(假设这两个有序顺序表中没有相同的元素)。
三、设计与编码
1、基本思想
大体上的方法与“有序顺序表的插入”方法类似。 创建两个数组,实现两个有序顺序表。需定义第二个表长length2,逐个将第二个顺序表中的数据与第一个数据表中的数据对比大小,并按大小顺序排列、合并,生成第三个表。最后输出。
2、编码
#includeiostream
using namespace std;
const int MaxSize=200;
class SeqList
{ public:
SeqList(int a[],int n);
int Length();
void Insert(int b[],int length2);
void PrintList();
private:
int data[MaxSize];
int length;
};
SeqList::SeqList(int a[],int n)
{int i;
if(nMaxSize)throw参数非法;
for(i=0;in;i++)
data[i]=a[i];
length=n;
}
int SeqList::Length()
{
return length;
}
void SeqList::Insert(int b[],int length2)
{ int j,h,i=0;
for( j=0;jlengthilength2;++j)
{if(b[i]data[j])
{ for(h=length;h!=j;--h)
data[h]=data[h-1];
data[j]=b[i];
++length;
++i;
}
else if(j==length-1b[i]data[length-1])
{
data[length]=b[i];
length++;
++i;
}
}
}
void SeqList::PrintList()
{for(int i=0;ilength;i++)
coutdata[i] ;
coutendl;
}
void main()
{
int a[6]={1,5,8,10,15,21};
int b[3]={6,13,18};
SeqList s(a,6);
SeqList c(b,3);
cout合并前的顺序表Aendl;
s.PrintList();
cout合并前的顺序表Bendl;
c.PrintList();
cout合并后的顺序表Cendl;
int x=c.Length();
s.Insert(b,x);
s.PrintList();
}
四、调试与运行
1、调试时遇到的主要问题及解决
括号、花括号未正确配对,出现混乱导致编译出错;
第一次运行成功,由于数组输出语句为 coutdata[i]endl; 界面如下:
经调整数组输出语句为coutdata[i]” ”;coutendl;
2、运行结果(输入及输出,可以截取运行窗体的界面)
五、实验心得
写程序代码时务必认真。
文档评论(0)