解题思路
1.储存系数与项数

储存结构:若只进行求值操作,不改变多项式的系数或指数,那么用顺序结构更方便些。否则,用链式结构效率更高。我们采取连式结构。
储存多项式信息:从上图可以看出,一个多项式中的一项有系数、指数两项。所以在设计结点时,应有三个域:系数、指数、next
2.要实现的操作
1.两个多项式相加
在进行操作之前,我们可以先建一个新的链表(“和多项式”链表),用来保存相加的结果。
(1)指针qa所指结点的指数 == 指针qb所指结点的指数
将两个结点中的系数相加,若和不为0,则修改qa所指结点的指数值,同时释放qb所指结点。反之,从多项式A的链表中删除相应结点,并释放指针qa和qb结点的指数值。
(2)指针qa所指结点的指数 < 指针qb所指结点的指数
摘取qa指针所指结点插入到“和多项式”链表中去。
(3)指针qa所指结点的指数 > 指针qb所指结点的指数
摘取qa指针所指结点插入到“和多项式”链表中去。
2.输出结果
代码
#include <stdio.h>
#include <stdlib.h>
typedef struct LNode
{
int num;
int index;
struct LNode *next;
}LNode;
typedef struct Link
{
struct LNode *head;
struct LNode *tail;
}*Link;
//初始化链表
void InitLink(Link L)
{
L->head = (LNode*)malloc(sizeof(LNode));
L->tail = (LNode*)malloc(sizeof(LNode));
L->head->next = NULL;
L->tail = L->head;
}
void show(Link L)
{
LNode *q = L