实验:数据结构与算法.doc

实验:数据结构与算法.doc

ID:61425978

大小:147.50 KB

页数:47页

时间:2021-01-29

实验:数据结构与算法.doc_第1页
实验:数据结构与算法.doc_第2页
实验:数据结构与算法.doc_第3页
实验:数据结构与算法.doc_第4页
实验:数据结构与算法.doc_第5页
资源描述:

《实验:数据结构与算法.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、《数据结构与算法》实验提交实验结果的要求:实验完成后,将文件夹中的Debug文件夹删除,然后将整个文件夹打包成压缩文件,并以“学号姓名”的方式重命名,提交该压缩包。实验1:VC环境的面向对象程序设计实验目的:掌握VC环境下面向对象编程的基本步骤实验准备:1.复习面向对象程序设计的有关概念2.阅读VC有关编程操作的说明实验步骤及要求:按照实验指导教师的指导,逐条完成以下要求:1.启动VC,新建空的控制台工程myproj,新建C++源程序文件main,查看目前文件夹中有哪些文件2.新建一个名为CA的类,查看文

2、件夹中新添了哪些文件3.为CA类添加1个int型私有数据成员x和1个char*型私有数据成员y4.在CA类的构造函数中添加代码,令x赋值为0,y赋值为空指针5.在CA类的析构函数中添加代码:如果y不是空指针,则释放y所指向的内存区域6.为CA增加带int型和char*型双参数的构造函数,在代码部分令x赋值为int型参数,令y指向动态申请的内存空间(字节数为char*型参数所指字符串的串长加1),并将char*型参数所指字符串复制到新申请的空间中7.为CA类增加函数成员Display,用于显示x的值和y所向

3、的指字符串8.编写下面的主函数,添加相应的#include预处理命令,并编译、运行程序:voidmain(){CAa,b(12,"abcdefg");a.Display();b.Display();}9.在主函数main中添加以下三行:a=b;a.Display();b.Display();再运行可发现正确显示了信息后程序运行出错,请说明原因。10.为CA类重载赋值运算符“=”,在其中对指针型数据成员y重新申请空间并做字符串复制。再次编译、运行程序,观察是否出错。11.为CA类建立拷贝构造函数,实现深拷贝

4、,代码与重载赋值运算符“=”基本相同(不需要return语句)。再次编译、运行程序,观察是否出错。12.为CA类重载“+”运算符,做两个对象的加法运算:整数部分相加,字符串部分拼接。在主函数中增加一个CA类的对象c,并在主函数中的“a=b;”语句后面增加一行:c=a+b;在程序的最后增加一行:c.Display();再次编译、运行程序,观察结果。实验2:顺序表实验目的:掌握顺序表的基本运算相关算法并编程实现实验准备:1.阅读以下“用顺序表存储多项式”的方法:一元多项式表现为:用顺序表存储多项式时,一个数据

5、元素由一个用于存储系数的实型分量coe(coefficient)和一个用于存储指数的整型分量exp(exponent)构成,在顺序表中只存储coe和exp即可表示多项式的一项。例如,多项式在顺序表中依次存放(2,5)、(3,2)、(-1,1)、(-4,0)共4个元素即可。注意,系数为0的项不存储,各个数据元素必须按指数降序排列。2.阅读、理解以下算法:顺序表的遍历、两个多项式相加3.将压缩包ex02.rar中的内容解压,双击文件夹中的dsw工程文件。当前工程中包含三个文件:关于类与类型定义的SeqList

6、.h、类的函数成员SeqList.cpp、主函数文件main.cpp。查看各个文件中的内容。实验步骤及要求:1.针对存储多项式的顺序表,修改SeqList.h中的类型定义SeqNode,使其符合多项式的存储要求。2.为CSeqList类增加Display方法,用于显示一个多项式。3.为CSeqList类重载“+”,实现多项式加法。4.去掉主函数main中各语句的注释符号,使得各条语句可以正确执行。//以下是关于数据元素的类型定义,请根据实际情况修改typedefstructdatatype{doublec

7、oe;//存放系数intexp;//存放指数}DataType;typedefDataTypeSeqNode;//以下是关于SeqList类型的声明classCSeqList{public:friendCSeqListoperator+(constCSeqList&x,constCSeqList&y);voidDisplay();virtualboolDeleteData(inti);//删除顺序表的第i号元素virtualboolGetData(inti,SeqNode*q);//取顺序表的第i号元素,

8、存放到q所指向的位置virtualvoidEmpty();//将当前顺序表置为空表virtualboolInsertData(SeqNodex,inti);//将新元素x插入到顺序表的第i号位置virtualvoidInputData();CSeqList&operator=(constCSeqList&x);//重载赋值运算符virtualintGetLength();//取表长virtualboolIsFull();//判

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。