数据结构--线性表的基本运算及多项式的算术运算.doc

数据结构--线性表的基本运算及多项式的算术运算.doc

ID:55324597

大小:792.50 KB

页数:33页

时间:2020-05-10

数据结构--线性表的基本运算及多项式的算术运算.doc_第1页
数据结构--线性表的基本运算及多项式的算术运算.doc_第2页
数据结构--线性表的基本运算及多项式的算术运算.doc_第3页
数据结构--线性表的基本运算及多项式的算术运算.doc_第4页
数据结构--线性表的基本运算及多项式的算术运算.doc_第5页
资源描述:

《数据结构--线性表的基本运算及多项式的算术运算.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、数据结构:线性表的基本运算及多项式的算术运算一、实验目的和要求实现顺序表和单链表的基本运算,多项式的加法和乘法算术运算。要求:能够正确演示线性表的查找、插入、删除运算。实现多项式的加法和乘法运算操作。二、实验环境(实验设备)X64架构计算机一台,Windows7操作系统,IDE:DevC++5.11编译器:gcc4.9.264bit二、实验原理及内容程序一:实现顺序表和单链表的实现本程序包含了四个文件,分别是LinearListMain.cpp,linearlist.h,seqlist.h,singlelist.h。分别是主程序,线性表抽象类,顺序储存线性表的实现,链表储存顺序表的实现。文件之

2、间的关系图:本程序一共包含了三个类:分别是LinearList(线性表抽象类),SeqList(顺序储存的线性表),SingleList(链表储存的线性表)。类与类之间的关系图如下:其实,抽象类LinearList规定了公共接口。分别派生了SeqList类和SingleList。SingleList类与SingleList类分别实现了LinearList类中的所有接口。程序代码以及分析:Linearlist类:#includeusingnamespacestd;templateclassLinearList{protected:intn;//线性表的长度pu

3、blic:virtualboolIsEmpty()const=0;//判读是否是空线性表virtualintLength()const=0;//返回长度virtualboolFind(inti,T&x)const=0;//将下标为i的元素储存在x中,成功返回true,否则返回falsevirtualintSearch(Tx)const=0;//寻找值是x的元素,找到返回true,否则返回falsevirtualboolInsert(inti,Tx)=0;//在下标为i的元素后面插入xvirtualboolDelete(inti)=0;//删除下标为i的元素virtualboolUpdate(i

4、nti,Tx)=0;//将下标为i的元素更新为xvirtualvoidOutput(ostream&out)const=0;//将线性表送至输出流};包含了一个保护数据成员n,和8种运算,具体说明见注释。实验报告Seqlist类:templateclassSeqList:publicLinearList{protected:intmaxLength;//顺序表的最大长度T*elements;//动态一维数组的指针intn;public:SeqList(intmSize);//构造函数~SeqList(){delete[]elements;}//析构函数boolIsEmpt

5、y()const;intLength()const;boolFind(inti,T&x)const;intSearch(Tx)const;boolInsert(inti,Tx);boolDelete(inti);boolUpdate(inti,Tx);voidOutput(ostream&out)const;};29实验报告核心算法:Search函数:算法分析:Search函数功能是查找值是x的元素,返回下标,不存在返回-1;本程序采用从第一个元素依次遍历的方法,时间复杂度为O(n)。代码:templateintSeqList::Search(Tx)const29{int

6、i;for(i=0;iboolSeqList::Insert(inti,Tx){if(i<-1

7、

8、i>=n)//判断越界{cout<<"outofbounds"<

9、gth)//判断剩余空间是否充足29{cout<<"overflow"<i+1;j--)//移位操作{elements[j]=elements[j-1];}elements[i+1]=x;//插入n++;//元素总数+1returntrue;}29Delete()函数:算法分析:首先判断链表是否是空链表,再判断下标是否越界。符合条件后

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

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

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