解题思路:

注意事项:

参考代码:

#include<stdio.h>

#include<stdlib.h>


void createListL();

typedef struct Node

{

int a;//表示系数

int b;//表示指数

struct Node *next;

}Node,*LinkList;


void display(LinkList L)//输出合并后的L链表

{

Node *p;

p=L->next;

while(p!=NULL)

{

while(p->a==0)

p=p->next;

printf("%d %d ",p->a,p->b);

p=p->next;

}

printf("\n");

}

void add(LinkList L,LinkList S)

{

Node *p,*q,*t=L;

Node *m=(Node *)malloc(sizeof(Node));

p=L->next;

q=S->next;

while(q!=NULL)//对S链表的结点进行遍历

{

while(q->b<p->b&&p->next!=NULL)//对指数进行比较,直到q的指数大于或小于p的指数则跳出循环

{

p=p->next;

t=t->next;

    }

if(q->b==p->b)//当指数相等时,系数相加

{

   p->a=p->a+q->a;

}

else if(q->b>p->b)//当q的指数大于p的指数时,创建一个新结点即m,把q的值赋给m,并插入到p的前一个结点

{

m->a=q->a;

m->b=q->b;

   t->next=m;

   m->next=p;

   t=t->next;

}else//如果遍历到p的最后一个结点时,即p->next==NULL,将新节点m插入此时p的下一个结点

{

m->a=q->a;

m->b=q->b;

p->next=m;

m->next=NULL;

}

q=q->next;

}

display(L);//合并完后输出结果

}

LinkList createListS(LinkList L)

{

int i,j;

char k;

Node *S=(Node *)malloc(sizeof(Node));

S->next=NULL;

Node *tail=S;

while(~scanf("%d %d",&i,&j))

  {

  k=getchar();

  Node *p=(Node *)malloc(sizeof(Node));

  p->a=i;

  p->b=j;

  p->next=tail->next;;

  tail->next=p;

  tail=tail->next;

  if(k!=' ')//若输入S链表后没有任何输入,就执行add()子函数

  {

  add(L,S);//将S合并到L,最终输出L,即为一元多项式结果

  createListL();//可再次创建L,实现计算多组数据

  }

  }

}

void createListL()

{

  int i,j;

  char k;

  Node *L=(Node *)malloc(sizeof(Node));

  L->next=NULL;

  Node *tail=L;

  while(~scanf("%d %d",&i,&j))

  {

  k=getchar();

  Node *p=(Node *)malloc(sizeof(Node));

  p->a=i;

  p->b=j;

  p->next=tail->next;

  tail->next=p;

  tail=tail->next;

  if(k=='\n')

  {

  createListS(L);//L链表创建后,建立S链表,即第二行输入

  }

  }


}

void main()

{

createListL();//创建第一行,即L链表

}

 


点赞(0)
 

0.0分

1 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 0 条评论

暂无评论