线性表的基本运算及多项式的算术计算重点讲义资料(共33页).doc
《线性表的基本运算及多项式的算术计算重点讲义资料(共33页).doc》由会员分享,可在线阅读,更多相关《线性表的基本运算及多项式的算术计算重点讲义资料(共33页).doc(33页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上实 验 报 告( / 学年 第 一 学期)课程名称数据结构A实验名称线性表的基本运算及多项式的算术计算实验时间年月日指导单位指导教师学生姓名班级学号学院(系)专 业专心-专注-专业实 验 报 告实验名称线性表的基本运算及多项式的算术计算指导教师实验类型上机实验学时2实验时间一、 实验目的和要求实验目的:1、深入理解线性表数据结构,掌握线性表的顺序和链接两种存储方式。2、熟练掌握顺序表的各种基本操作。3、学会使用线性表解决应用问题的方法。4、加深对抽象类模板、类的继承、代码重用等C+知识的理解和使用。内容和要求:1、在顺序表类中增加成员函数void Reverse(),
2、实现顺序表逆置。2、在顺序表类中增加成员函数bool DeleteX(const T &x),删除表中所有元素值等于x的元素。若存在则删除之且返回true,否则返回false。3、编写main函数,调用上述新增函数。4、设计带表头结点的单链表表示的多项式类,实现各个运算。5、增加成员函数void PolyMul(Polynominal &r),并重载*运算符。6、编写main函数,测试多项式类的各个运算。二、实验环境(实验设备)硬件:PC软件:Code:Blocks (C+)三、实验原理及内容1、线性表的基本运算(1)核心算法及流程图顺序表逆置:思路:将顺序表中第j个结点中的元素与第(n-1-
3、j)个结点中的元素替换,从第一个结点开始,共进行(n/2取整)次。代码:template void SeqList:Reverse() int m=n/2; for(int j=0;jm;j+) T temp=elementsj; elementsj=elementsn-1-j; elementsn-1-j=temp; 流程图: 删除表中所有元素值等于x的元素:思路:遍历顺序表,没搜索到一次x,就将其后所有结点前移,考虑到x连续存在的情况,将所有结点前移之后,i自减,再循环进行。代码:template bool SeqList:DeleteX(const T &x) int flag=n; f
4、or(int i=0;in;i+) if(elementsi=x) for(int j=i+1;jn;j+) elementsj-1=elementsj; i-; n-; if(flagn) return true; else return false; 流程图: (2) 完整代码:#include using namespace std;template class SeqListpublic: SeqList(int mSize); SeqList() delete elements; bool IsEmpty()const; int Length()const; bool Find(in
5、t i,T& x)const; int Search(T x)const; bool Insert(int i,T x); bool Delete(int i); bool Update(int i,T x); void Output(ostream& out)const; void Reverse(); bool DeleteX(const T &x);private: int maxLength; T *elements; int n;template SeqList:SeqList(int mSize) maxLength=mSize; elements=new TmaxLength;
6、n=0;template bool SeqList:IsEmpty()const return n=0;template int SeqList:Length()const return n;template bool SeqList:Find(int i,T& x)const if(in-1) coutOut of Boundsendl; return false; x=elementsi; return true;template int SeqList:Search(T x)const for(int j=0;jn;j+) if(elementsj=x) return j; return
7、 -1;template bool SeqList:Insert(int i,T x) if(in-1) coutOut of Boundsendl; return false; if(n=maxLength) coutOverFlowi;j-) elementsj+1=elementsj; elementsi+1=x; n+; return true;template bool SeqList:Delete(int i) if(!n) coutUnderFlowendl; return false; if(in-1) coutOut of Boundsendl; return false;
8、for(int j=i+1;jn;j+) elementsj-1=elementsj; n-; return true;template bool SeqList:Update(int i,T x) if(in-1) coutOut of Boundsendl; return false; elementsi=x; return true;template void SeqList:Output(ostream& out)const for(int i=0;in;i+) outelementsi ; outendl;template void SeqList:Reverse() int m=n
9、/2; for(int j=0;jm;j+) T temp=elementsj; elementsj=elementsn-1-j; elementsn-1-j=temp; template bool SeqList:DeleteX(const T &x) int flag=n; for(int i=0;in;i+) if(elementsi=x) for(int j=i+1;jn;j+) elementsj-1=elementsj; i-; n-; if(flagn) return true; else return false; int main() int n,m,k; coutn; Se
10、qList a(n); cout请输入各个元素:; for(int i=0;im; a.Insert(i-1,m); coutk; coutendl起始: ; a.Output(cout); a.Reverse(); cout逆置后:; a.Output(cout); a.DeleteX(k); coutInsertAfter(0,0); Term *q,*p; for(q=theList-link;q;q=q-link) Polynominal temp; Term *s=temp.theList; for(p=r.theList-link;p;p=p-link) s=s-InsertAft
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 线性 基本 运算 多项式 算术 计算 重点 讲义 资料 33
限制150内