数据结构
用单链表ha 存储多项式A(x )=a0+a1x1+a2x2+…+anxn(其中aI为非零系数),用单链表hb 存储多项式B(x )=b0+b1x1+b2x2+…+bmxm(其中bj为非零系数),要求计算C(x )= A(x )+B(x ),结果存到单链表hc中。试写出程序。
思路:获取A,B 两个多项式,每获取一个就建立一个结点插入到头结点之后。形成一个多项式单链表。
创建头结点 C 将A,B 多项式 串联起来。 在操作过程中,一定要 将头结点C 赋值给 pc ,通过pc连接多项式。因为最后要返回 头结点C。
A,B多项式比较指数的大小,小项直接接在pc的后面,若相等,计算系数之和,不为零,保存下来。为零,跳过这个多项式。
最后,将A,B多余的多项式,直接串联在pc后就完成了。
返回头结点 C。
#include<stdio.h>
#include<stdlib.h>
typedef struct list{
int c;//系数
int e;//指数
struct list *next;
}list,*Linklist;
//创建多项式
Linklist creatPolyn(){
Linklist head,p,q;
int m;
head = (Linklist)malloc(sizeof(list));
head->next= NULL;
q = head;
printf("请输入多项式的项数:");
scanf("%d",&m);
for(int i=0;i<m;i++){
p = (Linklist)malloc(sizeof(list)