1、 1 数据结构实验报告数据结构实验报告 一元稀疏多项式计算器 实验目的实验目的 实现一元多项式的简单运算功能,掌握线性表的知识,提高编程能力。 功能清单功能清单 1. 一元多项式创建 2. 显示一元多项式 3. 复制一元多项式 4. 多项式加法 5. 多项式减法 6. 修改一元多项式 7. 删除一元多项式 8. 销毁记录 实验设计实验设计 该多项式计算器以菜单驱动的形式实现上述各运算功能。最多可支持十条记录,分别用指针数组 引导存储于十个不同的位置。以下为程序的部分源代码。 #include #include #include typedef struct LinkList double co
2、ef; int expn; LinkList *next; LNode; void CreatPolyn(LinkList *h)/创建多项式 LinkList *q=NULL, *w=NULL, *p=NULL; 2 double m=0; int n=0; (*h)=(LinkList *)malloc(sizeof(LinkList); (*h)-coef=0; (*h)-expn=0; (*h)-next=NULL; printf(“请输入 X 的系数和指数,当系数为零时结束创建n“); scanf(“%lf%d“, while(m!=0) q=(LinkList *)malloc(s
3、izeof(LinkList); q-coef=m; q-expn=n; q-next=NULL; if(*h)-next=NULL) if(q-expn=(*h)-expn) (*h)-coef+=q-coef; else if(*h)-expnq-expn) q-next=(*h); *h=q; else (*h)-next=q; else for(w=(*h);w-next!=NULL;w=w-next) if(q-expn=w-expn) w-coef+=q-coef; break; else if(w-expnq-expn) (*h)=q; break; 3 else if(w-ex
4、pnexpn) w-next=q; break; if(w-next=NULL) if(w-expn=q-expn) w-coef+=q-coef; else if(w-expnexpn) w-next=q; printf(“请输入 X 的系数和指数,当系数为零时结束创建n“); scanf(“%lf%d“, void PrintPolyn(LinkList *p, int i)/打印多项式 printf(“第%d 个多项式是:“,i); while(p!=NULL) if(p-coef)0) printf(“+%lf*X%d“,p-coef,p-expn); else if(p-coef)coef,p-expn); p=p-next; printf(“n“); 4 void CopyPolyn(LinkList *M, LinkList *N)/多项式复制 LinkList *p=NULL, *q=NULL, *w=NUL