数据结构:一元稀疏多项式计算器(1)输入并建立多项式(2)输出多项式,输出形式为整数序列:项数,系数
答案:2 悬赏:60 手机版
解决时间 2021-03-09 17:18
- 提问者网友:绫月
- 2021-03-08 16:58
数据结构:一元稀疏多项式计算器(1)输入并建立多项式(2)输出多项式,输出形式为整数序列:项数,系数
最佳答案
- 五星知识达人网友:冷風如刀
- 2021-03-08 18:18
#include<stdio.h> 声明部分:源代码含有2个文件 #include<malloc.h> typedef struct pnode // 定义指针// {int coef; //定义系数// int exp; //定义指数// struct pnode *next; }pnode; pnode * creat() //creat函数用来存放多项式// {int m,n; pnode *head,*rear,*s; head=(pnode *)malloc(sizeof(pnode)); rear=head; printf(\n输入指数(按递增顺序输入):); scanf(%d,&m); printf(输入一元式系数(0为退出):); scanf(%d,&n); do { s=(pnode *)malloc(sizeof(pnode)); s->coef=n; //n为系数// s->exp=m; //m为指数// rear->next=s; s->next=NULL; rear=s; printf(\n输入指数(按递增顺序输入):); scanf(%d,&m); printf(输入一元式系数(0为退出):); scanf(%d,&n); }while(n); return head; } pnode * add(pnode *heada,pnode *headb) {pnode *headc,*a,*b,*s,*rearc; int sum; a=heada->next;b=headb->next; headc=(pnode *)malloc(sizeof(pnode)); rearc=headc; //多项式的存放//都放到s中里// while(a!=NULL&&b!=NULL) //指数相等,则系数相加.// { if(a->exp==b->exp) { sum=a->coef+b->coef; if(sum) {s=(pnode *)malloc(sizeof(pnode)); s->coef=sum; s->exp=a->exp; rearc->next=s; rearc=s; a=a->next; b=b->next;} else {a=a->next; b=b->next; } } else if(a->exp<b->exp) //a指数如果小于b,则a放到s中// { s=(pnode *)malloc(sizeof(pnode)); s->coef=a->coef; s->exp=a->exp; rearc->next=s; //用下一个结点s取代下一个c// rearc=s; a=a->next; } else //如果a的指数大,则b放到s中// { s=(pnode *)malloc(sizeof(pnode)); s->coef=b->coef; s->exp=b->exp; rearc->next=s; rearc=s; b=b->next; } } if(a) {while(a!=NULL) //b空了放a中的项//
全部回答
- 1楼网友:空山清雨
- 2021-03-08 18:53
正好我需要
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯