资源描述:
《数据结构课程设计报告书==》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、北方民族大学课程设计课程名称:数据结构与算法课程设计院(部)名称:信息与计算科学学院组长姓名:金龙龙20080544同组人员姓名:任杰20080535马鹏起20080596赵俞军20080576赵庆康20080570设计时间:2015.6.1---2015.6.24金龙龙200805442、一元多项式计算任务:能够按照指数降序排列建立并输出多项式;能够完成两个多项式的相加、相减,并将结果输入;在上交资料中请写明:存储结构、多项式相加的基本过程的算法(可以使用程序流程图)、源程序、测试数据和结果、算法的时间复杂度、另外可以提出
2、算法的改进方法;存储结构:链表存储输入第一个多项式打印第一个多项式输入第二个多项式打印第二个多项式两个多项式的差两个多项式的和打印多项式和打印多项式差#include#include#include#definenull0typedefstructpolynode{intcoef;intexp;structpolynode*next;}node;node*create(){node*h,*r,*s;intc,e;h=(node*)malloc(sizeof(node)
3、);r=h;printf("coef:");scanf("%d",&c);printf("exp:");scanf("%d",&e);while(c!=0){s=(node*)malloc(sizeof(node));s->coef=c;s->exp=e;r->next=s;r=s;printf("coef:");scanf("%d",&c);printf("exp:");scanf("%d",&e);}r->next=NULL;return(h);}voidarrange(node*pa){node*h=pa,*p,*q,
4、*r;for(p=pa;p->next!=NULL;p=p->next);r=p;for(h=pa;h->next!=r;){for(p=h;p->next!=r&&p!=r;p=p->next)if((p->next)->exp>(p->next->next)->exp){q=p->next->next;p->next->next=q->next;q->next=p->next;p->next=q;}r=p;}}voidneipai(node*head){node*p,*q,*r,*Q;p=head;if(head->ne
5、xt->next!=NULL){for(q=p->next;q!=NULL;q=q->next)for(p=q->next,r=q;p!=NULL;)if(q->exp==p->exp){q->coef=q->coef+p->coef;r->next=p->next;Q=p;p=p->next;free(Q);}else{r=r->next;p=p->next;}}}voidinsert(node*head,node*s){node*pre,*p;pre=head;p=pre->next;while(p!=NULL){if(
6、p->exp>s->exp)break;pre=p;p=p->next;}s->next=p;pre->next=s;}node*copyList(node*head){node*l=NULL,*newHead;newHead=(node*)malloc(sizeof(node));newHead->next=NULL;head=head->next;while(head!=NULL){l=(node*)malloc(sizeof(node));l->coef=head->coef;l->exp=head->exp;inse
7、rt(newHead,l);head=head->next;}returnnewHead;}voidprint(node*p){while(p->next!=NULL){p=p->next;printf("%d*x^%d",p->coef,p->exp);}}voidpolyadd(node*ha,node*hb){node*p,*q,*pre,*temp;intsum;p=ha->next;q=hb->next;pre=ha;while(p!=NULL&&q!=NULL){if(p->exp==q->exp){sum=p-
8、>coef+q->coef;if(sum!=0){p->coef=sum;pre->next=p;pre=pre->next;p=p->next;temp=q;q=q->next;free(temp);}else{temp=p->next;free(p);p=temp;temp=q->ne