多项式的运算是链表使用的典型例子,涵盖了很多链表的操作,值得深度学习与思考。
多项式节点结构体定义为:
包含了系数,指数,以及指向下一节点的指针
struct PolyNode{
int coef;
int expon;
struct PolyNode *link;
};
typedef struct PolyNode *Polynomial;
Polynomial P1, P2;
加法和乘法的操作暂不解释:
本题的输出函数给了我一些解题的启发,通常我们刷算法题的时候经常会遇到这样的要求,最后一位数后面没有空格:
在这里我们使用一个flag来标记第一个元素,如果是第一个元素,那么仅仅将flag内容变为1,在以后的操作(即不是第一个元素)我们直接输出空格。
void PrintPoly(Polynomial P)
{
int flag = 0;
Polynomial t;
t = P;
while(t)
{
if(!flag)
flag = 1;
else
printf(" ");
printf("%d %d", t->coef, t->expon);
t = t->link;
}
printf("\n");
}
#include <stdio.h&g