毕业(设计)论文_多项式的设计报告数据结构课程设计.docVIP

  • 3
  • 0
  • 约2.21万字
  • 约 26页
  • 2016-09-23 发布于辽宁
  • 举报

毕业(设计)论文_多项式的设计报告数据结构课程设计.doc

毕业(设计)论文_多项式的设计报告数据结构课程设计.doc

目 录 1.多项式的设计报告…….………………………2 a.概要设计 …….………………………2 b.详细设计 …….………………………3 c.调试分析 …….………………………8 数据结果 …….………………………8 时间复杂度分析 ……………………10 问题和解决方法 ……………………10 源程序代码展示…………………………10 2.二叉树的设计报告…….………………………18 a.概要设计 …….………………………18 b.详细设计 …….………………………19 c.调试分析 …….………………………21 数据结果 …….………………………21 时间复杂度分析 ………………………22 问题和解决方法 ………………………23 源程序代码展示…………………………23 3.课程设计总结…………………………………26 多项式的设计报告 概要设计 1. 将该存储结构定义为链式结构的线性表存储结构的定义struct Node {float coef;//结点类型 int exp;}; typedef Node polynomial; struct LNode {polynomial data;//链表类型LNode *next;}; typedef LNode* Link; 2.创建函数流程图 3.主程序流程图: 4.多项式加法的算法分析 将链表pa,pb分别复制到新建链表p1,p2中,再新建链表pc,然后分别依次对p1,p2链表中结点中的指数进行比较,将指数小的结点的值先赋值给pc中的结点,两个指数相同时,将系数相加后一起赋值给pc中的结点,最后将p1或者p2中多余的结点直接赋值给pc链表,pc链表就是通过加法后的多项式 5.多项式减法的算法分析 新建链表pt,将pb中的结点值赋给pt,然后将pt中所有结点的系数乘上(-1)后,再将pt和pa相加就得到相减后的多项式。 6.多项式乘法的算法分析 同样将链表pa,pb中的结点赋值给p1,p2,然后依次将p1中的每个结点的值分别与p2中每个结点的值相乘后赋值给pc,就得到相乘后的多项式。 详细设计 创建多项式的源程序 void CreateLink(Link L,int n) {if(L!=NULL) //首先判断是已经存在多项式,如果存在则销毁 {DestroyLink(L); } Link p,newp; L=new LNode;L-next=NULL;//分配结点空间,new相当于malloc函数 (L-data).exp=-1; //创建头结点 p=L; for(int i=1;i=n;i++) { newp=new LNode; cout请输入第i项的系数和指数:endl; cout系数:; cin(newp-data).coef; cout指数:; cin(newp-data).exp; if(newp-data.exp0) {cout您输入有误,指数不允许为负值!endl; delete newp;i--;continue;} newp-next=NULL;p=L; if(newp-data.coef==0) {cout系数为零,重新输入!endl; delete newp;i--;continue; } while((p-next!=NULL)((p-next-data).exp(newp-data).exp)) {p=p-next; } if(!JudgeIfExpSame( L, newp)) {newp-next=p-next; p-next=newp; }else { cout输入的该项指数与多项式中已存在的某项相同,请重新创建一个正确的多项式endl; delete newp;DestroyLink(L); CreateLink(L,n); break; } } } 二.多项式相加模块的源程序 void PolyAdd(Link pc,Link pa,Link pb) { Link p1,p2,p,pd; CopyLink(p1,pa);CopyLink(p2,pb); //将链表pa,pb分别复制给p1,p2 pc=new LNode; pc-

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档