一元多项式的加法(2)

2018-12-17 11:53

数据结构第二次实验报告

四、调试分析

实验中遇到的最主要的问题是(1)当用户输入的多项式幂次是混乱的时候如何正确的输出计算结果,在本算法中即转化为如何对读入的多项式按降幂排序。本程序的排序算法是基于链表的插入排序,而我一开始的想法是用双链表实现排序(双链表有前驱节点指针,可以访问某一节点的前驱),但实现的时候却发现双链表比较复杂,由于多了一个指针,使算法中的指针指向显得更加混乱而且很容易出错。而后便改用单链表编写。(2)由于单链表中含有一指针项,因此指针的指向逻辑就必须非常清楚,在判断链表是否遍历完全时也遇到了一些问题。

五、测试结果

样例1

输入多项式的项数5

输入多项式的各项(系数在前 幂次在后) 3 8 7 9 6 5 4 13 5 7

输入的多项式是+4x^13+7x^9+3x^8+5x^7+6x^5 输入多项式的项数4

输入多项式的各项(系数在前 幂次在后)

数据结构第二次实验报告

9 15 -7 9 6 4 3 2

输入的多项式是+9x^15-7x^9+6x^4+3x^2 他们求和后的多项式是

+9x^15+4x^13+3x^8+5x^7+6x^5+6x^4+3x^2 样例二

输入多项式的项数4

输入多项式的各项(系数在前 幂次在后) 1.5 8 2.3 9 3 8 4 6

输入的多项式是+2.3x^9+1.5x^8+3x^8+4x^6 输入多项式的项数4

输入多项式的各项(系数在前 幂次在后) -2.3 8 3 9 4 7 3 0

输入的多项式是+3x^9-2.3x^8+4x^7+3x^0

数据结构第二次实验报告

他们求和后的多项式是

+5.3x^9-0.8x^8+3x^8+4x^7+4x^6+3x^0

六、用户使用说明

1、本程序的执行环境为visualc++ 2、运行程序时 提示输入

输入多项式的项数//第一个多项式的项数(整型,正整数) 输入多项式的各项(系数在前 幂次在后)//输入第一个多项式即可

输入的多项式是//输出第一个多项式(降幂输出) 输入多项式的项数//第二个多项式的项数(整型,正整数) 输入多项式的各项(系数在前 幂次在后)//输入第二个多项式即可

输入的多项式是//输出第二个多项式(降幂输出)

他们求和后的多项式是//输出求和后的结果

七、实验心得

通过实验,我对链表的应用更加熟悉,同时掌握了基于对链表的插入排序算法,也发现了自己的一些不足之处。本次试验中在插入算法的设计中我消耗了很多时间,原因在于一开始并没有分析透彻就急于上手编程,从而导致开始的很多次失败…而且通过与同学的交流我发现基本的算法思想每个人都知道,但差别就在与代码的强壮、简洁、高

数据结构第二次实验报告

效、易懂。这是以后的程序中需要注意和努力的地方。

八、附录

代码

//多项式的加法 #include

class Node{ public: };

class sNode{ public:

sNode(int size=0){ this->size= size;Init();} double vol; double no; Node* next;

void setpHead();

Node* Remove(Node* t1); Node* Insert(); void setPloy();

void Print(double m,double n); void PrintInfo();

数据结构第二次实验报告

void PloyAdd(sNode s1,sNode s2);

private: };

void sNode::setpHead(){ }

Node* sNode:: Remove(Node* t1){

fence = pHead;

if(t1->no > pHead->no ){

t1->next = pHead; pHead = t1;

cin>>pHead->vol >>pHead->no ; size++; Node* pHead; Node* fence; int size; void Init(){ }

pHead = new Node(); pHead->next = NULL; fence = pHead;


一元多项式的加法(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:(新)员工转岗离职工作交接表

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: