资源描述:
《一元稀疏多项式实验报告(罗忠霖).doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、集美大学计算机工程学院实验报告课程名称:数据结构与算法班级:计算1013实验成绩:指导老师:杨艳华姓名:罗忠霖实验名称:一元稀疏多项式计算器学号:上机时间2011年10月20号编号:03组号;12上机完成时间:2学时一.目的(本次试验所涉及并要求掌握的知识点)本次实习的主要目的在于帮助学生熟练掌握线性表的基本操作在两种存储结构上的实现,其中以各种链表的操作和应用为重点。二.实验内容与设计思想1.问题描述设计一个一元稀疏多项式简单计算器2.基本要求一元稀疏多项式简单计算器的基本功能:(1)输入并建
2、立多项式;(2)输出多项式,输出的形式为整数序列:n,c1,e1,c2,e2........cn,en,期中n为多项式的项数,ci和ei分别为第i项的系数和指数,系列按指数的降序排列;(3)多项式a和多项式b相加,建立多项式a+b;(4)多项式a和b相减,建立多项式a-b;3.程序代码#include#include#includetypedefstructlist{floatxishu;//某项的系数intzhishu;//某项的指数s
3、tructlist*next;}*linklist;voidcaidan(void);voidxianshi(linklist);linklistdx_built(int);linklistdx_jia(linklist,linklist);linklistdx_jian(linklist,linklist);linklistsort(linklisthead);main(){inti,a,b;linklistpa,pb,pc1,pc2;caidan();do{printf("");prin
4、tf("请选择你想要的功能0--4");scanf("%d",&i);switch(i){case1:printf("请输入多项式A的项数:");scanf("%d",&a);pa=dx_built(a);pa=sort(pa);printf("请输入多项式B的项数:");scanf("%d",&b);pb=dx_built(b);pb=sort(pb);break;case2:printf("多项式A与B的和为:");pc1=dx_jia(pa,pb);xianshi(pc1);b
5、reak;case3:printf("多项式A与B的差为:");pc2=dx_jian(pa,pb);xianshi(pc2);break;case4:printf("多项式A=");xianshi(pa);printf("多项式B=");xianshi(pb);break;case0:break;}}while(i!=0);printf("你选择了退出操作,欢迎使用!");system("pause");//系统暂停,按任意键键继续flushall();system("cls");}voi
6、dcaidan(void){//定义菜单函数printf("*************************************************");printf("t一元稀疏多项式计算器t");printf("*************************************************");printf("0.退出程序");printf("1.建立多项式");printf("2.多项式加法");printf("3.多项式减法"
7、);printf("4.多项式输出");printf("*************************************************");}//caidanlinklistdx_built(intm){//创建多项式inti;linklisthead,p;head=(structlist*)malloc(sizeof(structlist));head->next=NULL;for(i=1;i<=m;i++){p=(structlist*)malloc(sizeof
8、(structlist));printf("(dx,%d)=",i);scanf("%f%d",&p->xishu,&p->zhishu);if(p->xishu==0)//系数为0的时候,删掉该节点free(p);else//系数不为0的时候{p->next=head->next;head->next=p;}}returnhead;}linklistsort(linklisthead){//指数按降序排列linklistp,q,tail,s;tail=NULL;while(head->next