[]-《数据结构课程设计》报告一元稀疏多项式计算器.docVIP

  • 6
  • 0
  • 约4.81千字
  • 约 16页
  • 2020-12-30 发布于湖北
  • 举报

[]-《数据结构课程设计》报告一元稀疏多项式计算器.doc

《数据结构课程设计》报告一元稀疏多项式计算器 ?? ??《数据结构课程设计》报告 ??一元稀疏多项式计算器 ?? ??班级: 软件1408 ??学号:1130505140831 ??姓名: 齐瑞征 ??指导老师: 石锋 ?? ??[问题描述] ??设计简单的一个一元稀疏多项式计算器。 ??[基本要求] ??一元稀疏多项式简单计算器的基本功能是: ??(1) 输入并建立多项式,以带头结点的单链表存储; ??(2) 输出多项式,输出形式为整数序列:n,c1,e1, c2,e2,,,,,,, cn,en,其中n是多项式 ??的项数,ci,ei,分别是第i项的系数和指数,序列按指数降序排序; ??(3) 多项式a和b相加,建立多项式a+b; ??(4) 多项式a和b相减,建立多项式a-b; ??(5) 多项式a和b相乘,建立多项式a*b; ??[数据结构设计] ?? ??在模拟多项式时,为了简化处理,只取最核心的两个数据:多项式的系数和指数,具体数据结构定义如下: ??typedef struct node{ ??int xs; /*系数*/ ??int zs; /*指数*/ ??struct node * next; /*next指针*/ ??}Dnode,* Dnodelist; ??[功能函数设计] ??(1)链表初始化函数Creat_node() ??(2)多项式数据的输入函数input() ??(3)数据的插入函数Insert_node() ??(4)多项式的显示函数output() ??(6)多项式的运算函数:新建链表存储计算后的多项式 ??多项式相乘Mulresult() ??多项式相加Addresult() ??多项式相减Subresult() ??(7)主函数main() ??创建两个多项式的链表并且初始化,分别调用相应的多项式创建函数,创建成功后选择运算方式,再将运算结果输出显示。 ??【实现过程】 ??1、在D:根目录下建立文件夹,命名方式为“班级”+“顺序号(两位)+“姓名”,例如你是商务1419班的,你在学生花名册上的顺序号是05号,你的姓名是张有才,则文件夹的名 ?? ??字是“商务141905张有才”。这个文件夹就是你的工作文件夹。 ??2、在VC中创建c++源程序,命名为“poly.c”,保存在工作文件夹中; ?? ?? ??3、在poly.c中输入以下内容并编译,使没有语法错误: ??#includestdio.h ??#includestdlib.h ??typedef struct node{ ??int xs; ??int zs; ??struct node * next; ??}Dnode,* Dnodelist; /*定义结构体*/ ??Dnodelist Creat_node(void) /*链表初始化*/ { ??Dnodelist D; ??D=(Dnodelist)malloc(sizeof(Dnode)); ??if(D) ??D-next=NULL; ??return D; ??} ??4、回答问题,以上程序中,Creat_node(void)函数的功能是什么? 答:创建链表里面的一个节点。 ?? ??5、在poly.c中完成如下函数,并编译。 ??int Insert_node(Dnodelist D,int xs,int zs) /*插入函数*/ { ??Dnodelist p; ??Dnodelist q; ??Dnodelist r; ??p=D; ??while(p-next) ??{ ??r=p; ?? ??p=p-next; ??if(zs==p-zs) ??{ ??p-xs=p-xs+xs; ??return 1; ??} ??else if(zsp-zs) { ??q=Creat_node(); ??q-xs=xs; ??q-zs=zs; ??r-next=q; ??q-next=p; ??return 1; ??} ??}/*while(p-next)*/ ??q=Creat_node(); ??q-xs=xs; ??q-zs=zs; ??q-next=p-next; ??p-next=q; ??return 1; ??free(p); ??free(q); ??free(r); ??} ??函数功能:将一项合并到多项式中。 ??参数说明: ??D:一个带头结点的单链表的头指针,其中按指数降序存放一个一元多项式的数据; ??xs:要合并的项的系数; ??zs:要合并的项的指数。 ??6、在poly.c中完成如下函数,并编译。 ??void output(Dnodelist D){ ??Dnodelist r; ??r=D-next;

文档评论(0)

1亿VIP精品文档

相关文档