文档详情

数据结构课程设计报告-设计一个一元多项式计算器.doc

发布:2017-04-20约1.79万字共22页下载文档
文本预览下载声明
数据结构课程设计报告 PAGE  PAGE 22 南京航空航天大学金城学院 报告评分批改老师 数据结构 课程设计报告 题 目 设计一个一元多项式计算器 班 级 学生姓名 学 号 2009031327 专 业 电类强化班 指导教师 提交日期 2011/1/4 南京航空航天大学金城学院 目录 题目要求及内容 函数模块及功能 技术要点 源代码 举例 调试心得 题目要求及内容 1.题目:设计一个一元多项式计算器 2.要求  eq \o\ac(○,1).用带头结点的单链表存储多项式 Typedef struct lnode{ Float coef; Int expn; Struct lnode *next; } lnode,*linklist; Typedef linklist polynominal;  eq \o\ac(○,2).输入时,构成的多项式链表按指数项大小递增有序排列  eq \o\ac(○,3).输出格式要求如: 3x^2+6x^8+7x^12-9x^15 3.基本功能  eq \o\ac(○,1).输入并且建立一元多项式  eq \o\ac(○,2).输出多项式  eq \o\ac(○,3).多项式相加a+b  eq \o\ac(○,4).多项式相减a-b  eq \o\ac(○,5).多项式相乘a*b 二 .函数模块及功能 1 .void Insert( linklist p,linklist h);链表插入 void Insert( linklist p,linklist h){ if(p-coef==0) free(p);//系数为0的话释放结点 else { linklist q1,q2; q1=h; q2=h-next; while(q2p-expnq2-expn) {//查找插入位置 q1=q2; q2=q2-next; } if(q2p-expn==q2-expn) {//将指数相同相合并 q2-coef+=p-coef; free(p); if(!q2-coef) {//系数为0的话释放结点 q1-next=q2-next; free(q2); } } else{//指数为新时将结点插入 p-next=q2; q1-next=p; } } } 2.linklist Createlinklist(linklist head);创建链表 linklist Createlinklist(linklist head) {//建立一个头指针为head的一元多项式 linklist p; float a;int b; p=head=(linklist)malloc(sizeof(struct lnode)); p-next=NULL; scanf(%f %d,a,b); while(a!=0 || b!=0){ //当输入为0 0时停止输入 p=(linklist)malloc(sizeof(struct lnode)); p-coef=a; p-
显示全部
相似文档