思路:用单链表来存储多形式,每一个结点存储多项式中的一项。用两个单链表分别存储两个多项式,结果再用新建一个单链表来存储。
数据结构:
typedef struct Node *PNode; //节点指针类型
struct Node{
int exp; //存储每一项的指数
float coe; //存储每一项的系数
PNode next; //指向下一项(下一个节点)
};
函数:
创建多项式:
PNode createpoly()
{
PNode h = NULL, p = NULL, q; //h为指向链表第一个结点的指针(即指向链表的指针)
int e;
float c; //e,c相当于一个中介,通过e,c向结点中存储数据,
printf("请输入系数和指数(指数从大到小):\n");
scanf("%f,%d",&c,&e);
while (e != 0 || c != 0)
{
p = (PNode)malloc(sizeof(struct Node)); //先创建一个结点
p->coef = c;
p->exp = e;
p->next = NULL; //指向下一个结点的指针先定义为空
if (h == NULL)
h = p;
else
q->next = p;
q = p;
printf("请输入系数和指数:\n");
scanf("%f,%d",&c,&e);
}
return h;