欢迎来到天天文库
浏览记录
ID:25797612
大小:1.09 MB
页数:21页
时间:2018-11-22
《数据结构课程设计(1)》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、课程设计报告册2013—2014学年度第一学期计算机院/系信息管理与信息系统专业11年级1班课程名称:数据结构课程设计姓名:XXX学号:XXX201.程序设计与实现1.1一元多项式计算1.需求分析建立一元多项式并按照指数降序排列输出多项式,将一元多项式输入并储存在内存中,能够完成两个多项式的加减运算并输出结果。2.概要设计存储结构:一元多项式的的表示可以在计算机内用链表表示,为了节省存储空间,只存储多项式中系数非零的项。链表中的每一个结点存放多项式非零的项,它包含三个域,分别存放该项的系数、指数及指向下一个多项式结点的指针。创建一元多项式链
2、表,对一元多项式的运算会出现各种可能情况进行分析,实现一元多项式的相加、相减操作。原因:多项式项数不确定,并且指数不一定相连,宜采用链表。所要设计的模块有:(1).voidstart()//用户选择界面的功能模块。(2).voidinsert(PLOY*head,PLOY*inpt)//查找位置插入新链节程序的功能模块。(3).PLOY*creat(charch)//输入并建立多项式的功能模块。此模块按照指数递减的顺序和一定的输入格式输入各个子项的“系数-指数对”,循环输入一个子项建立一个相关结点,当输入结束标志的时候就停止输入。(4).P
3、LOY*addPLOY(PLOY*head,PLOY*pre)//多项式相加的功能模块。此模块根据建立的两个多项式f(x),g(x)进行相加的运算,存放在F(x)中,并不改变F(x)链表。(5).PLOY*minusPLOY(PLOY*head,PLOY*pre)//多项式相减的功能模块。此模块根据建立的两个多项式f(x),g(x)进行相减的运算,存放在F(x)中,并不改变F(x)链表。(6).PLOY*byPLOY(PLOY*head1,PLOY*head2)//多项式相乘的功能模块。此模块根据建立的两个多项式f(x),g(x)进行相乘的
4、运算,存放在F(x)中,并不改变F(x)链表。(7).voidprint(PLOY*fun)//输出多项式的功能模块。(8).主函数main(),利用switch()实现各函数的调用,系统根据用户输入的数字来调用相应的函数。3.详细设计核心算法程序段:(1).多项式相加PLOY*addPLOY(PLOY*head,PLOY*pre)20{PLOY*inpt;intflag=0;while(flag==0){if(pre->next==NULL)flag=1;//当现在指向空时跳出循环else{pre=pre->next;inpt=(PLOY
5、*)malloc(sizeof(PLOY));//创建新链节inpt->coef=pre->coef;inpt->expn=pre->expn;inpt->next=NULL;insert(head,inpt);}//否则把当前"g(x)"的链节插入到"y(x)"中}returnhead;}(2).多项式相减PLOY*minusPLOY(PLOY*head,PLOY*pre){PLOY*inpt;intflag=0;while(flag==0){if(pre->next==NULL)flag=1;//当现在指向空时跳出循环else{pre=
6、pre->next;inpt=(PLOY*)malloc(sizeof(PLOY));//创建新链节inpt->coef=0-pre->coef;inpt->expn=pre->expn;20inpt->next=NULL;insert(head,inpt);}//否则把当前"g(x)"的链节插入到"y(x)"中}returnhead;}(3).多项式相乘PLOY*byPLOY(PLOY*head1,PLOY*head2){PLOY*inpt,*res,*pre;intflag=0;res=(PLOY*)malloc(sizeof(PLOY
7、));//创建链表头res->next=NULL;head1=head1->next;pre=head2;while(flag==0){if(pre->next==NULL){pre=head2;//当现在指向空时跳出循环head1=head1->next;continue;}if(head1==NULL){flag=1;//当现在指向空时跳出循环continue;}pre=pre->next;inpt=(PLOY*)malloc(sizeof(PLOY));//创建新链节inpt->coef=pre->coef*head1->coef;i
8、npt->expn=pre->expn+head1->expn;inpt->next=NULL;insert(res,inpt);//把当前"g(x)"的链节插入到"y(x)"中
此文档下载收益归作者所有