给定单链表的类型如下
typedef struct Node
{
int coef; //系数(coefficient)
int exp; //指数(exponent)
struct Node *next;
} PolyNode, *PolyList;
请设计void printList(PolyList L)函数。
该函数输出多项式,已经知道L指向的链表是带头节点的单链表,链表中的每个数据
节点表示多项式的一项,数据节点已经按指数从大到小排序。
输出多项式请注意格式,比如
-x^3+4x^2-x+1
x^5+x-1
-1
1
空多项式输出
0
void printList(PolyList L)
{
PolyList p;
p=L->next;
if(p==NULL){
puts("0");
}
while(p!=NULL){
if(p->coef==0){
p=p->next;
}
else if(p->coef!=0){
if(p->coef==1){
if(p->exp==0){
printf("%d",p->coef);
}
if(p->exp==1){
printf("x");
}
else{
printf("x^%d",p->exp);
}
}
else if(p->coef==-1){
if(p->exp==0){
printf("%d",p->coef);
}
if(p->exp==1){
printf("-x");
}
else{
printf("-x^%d",p->exp);
}
}
else{
printf("%dx^%d",p->coef,p->exp);
}
p=p->next;
}
if(p->next&&p->next->coef>0){
printf("+");
}
}
}