- 1、本文档共90页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[理学]DSFA第2章
单链表类的设计与实现 设计单链表类,实现构造、析构、插入、删除等基本的成员函数,并添加将单链表逆置、搜索值为x等成员函数。(参考教材2.3) 时间:第5、6、8、10周周二上午第一大节 地点:四工-3B 要求: 1、及时复习2.3节、预习实验 2、独立完成,提前写好本次实验的源程序代码草稿 3、实验后程序存盘,通过邮箱上缴源代码 4、一周内完成实验报告(参考12.4节)上缴 作 业 课后习题2.2(2), 2.6, 2.8, 2.9 预习2.4节和第3章 完成实验准备 void Polynominal::Clear() {//清空当前多项式链表 Term *t=theList-link; while(t!=theList) { theList-link=t-link; delete t; t=theList-link; } } void Polynominal::Copy(Polynominal r) { //把r复制到当前多项式对象中去 Clear(); Term* p=theList; Term* q=r.theList-link; for(;;) { int c=q-coef; int e=q-exp; if(e0) break; p=p-InsertAfter(c,e); q=q-link; } } 时间:第5、6、8、10周周二上午第一大节 地点:四工-3B 要求: 1、及时预习实验 2、独立完成,提前写好本次实验的源程序代码草稿 3、实验后程序存盘,通过邮箱上缴源代码 4、一周内完成实验报告(参考12.4节)上缴 2. 元素间的逻辑关系 由于多项式按降幂排列,因此每一项都有一个指数比它高的项,有一个比它低的项,除了最高项没有比它高的项,最后一项没有比踏低的项外。这样,多项式的每一项就组成了一个线性表,线性表中的每个数据元素是多项式的一项(coef, exp)。 因此,一元整系数多项式可以视为线性表。 3. 存储表示 (2,10) (4,8) (-6,2) 用顺序存储:q(x) 线性表有顺序和链接存储。 q(x)=2x10+4x8-6x2,p(x)=3x14-8x8+6x2+2 做q(x)+p(x)?q(x), 结果为:q(x)= 3x14+2x10-4x8+2 (3,14) (-8,8) (6,2) (2,0) p(x) (3,14) (2,10)(-4,8) (2,0) 结果q(x) 从结果中可以发现,在q(x)上做了插入和删除运算, 因此不宜采用顺序存储。 p(x)=3x14-8x8+6x2+2 用带表头结点的单循环链表表示一元多项式 多项式的项coef?xexp结点结构: coef exp link 3 14 px -8 8 2 0 6 2 0 -1 2.4.1 项结点的C++类 (1) 项结点的C++类: class Term (2) 多项式的C++类: class Polynominal (3) 类Polynominal是 类Term的友元类。 课堂提要 第2章 线性表 2.1 线性表ADT 2.2 线性表的顺序表示 2.3 线性表的链接表示 2.4 多项式的算术运算 2.4.1 项结点的C++类 2.4.2 多项式的C++类 2.4.3 多项式的实现 程序2.6 多项式项结点的C++类 class Polynominal; class Term { public: Term(int c,int e); Term(int c,int e,Term* nxt); Term *InsertAfter(int c,int e);//在this指 //针指示的项后插入新项 private: int coef; int exp; Term *link; friend ostream operator(ostream , const Term ); //输出项 friend class Polynominal; }; 项结点类的两种构造函数 Term::Term(int c,int e):coef(c),exp(e) { link=0; } Term::Term(int c,int e,Term *nxt) :coef(c),exp(e) { link=nxt; } 项结点类的InsertAfter函数 Term* Term::InsertAfter(
您可能关注的文档
- [理学]ch6 脉冲产生与整形电路.ppt
- [理学]ch6氧化还原平衡与氧化还原滴定法.ppt
- [理学]chap 2-5--四节课--数据类型--运算符与表达式-1.ppt
- [理学]ch8 evolutionary genomics.ppt
- [理学]Chap1误差分析.ppt
- [理学]chapter-1大学物理.ppt
- [理学]Chapter04-函数的连续性.ppt
- [理学]chapter 4 Respiratory Physiology.ppt
- [理学]chapter4-5 nucleic acid_gene_nucleosome_chrosome_ genome and genomics.ppt
- [理学]Chapter54 角动量- 不可约张量算符.ppt
文档评论(0)