


- /*
- 系数:coefficient
- 指数: exponent
- */
-
- #include
- using namespace std;
- int n,m;
-
- struct Node
- {
- int expn; //指数
- int coef; //系数
- Node *next;
- Node(){}
- Node(int key1,int key2):expn(key1),coef(key2),next(NULL){}
- };
-
- void init(Node* &la,Node* &lb)
- {
-
- cin>>n>>m;
-
- //1.整理第一个多项式
- for(int i=1;i<=n;i++)
- {
- int expn,coef;
- cin>>expn>>coef;
- Node *now=new Node(expn,coef);
-
- /*
- 找到【la链表】中第一个大于等于【新输入的节点指数值】的
- 节点的 【前一个节点】。
- (要找的节点的前一个节点)
- */
- Node *p=la;
- while(p->next&&(p->next->expn)< now->expn)
- {
- p=p->next;
- }
-
- //现在p就是前一个节点,他的后一个节点有两种情况:1.等于now的指数,2.大于now的指数
- if(p->next!=NULL&&p->next->expn==now->expn) //指数相同就合并
- {
-
- p->next->coef+=now->coef;
-
- }
- else //指数不同就插入
- {
- now->next=p->next;
- p->next=now;
-
- }
- }
-
-
- //2.整理第二个多项式
- for(int i=1;i<=m;i++)
- {
- int expn,coef;
- cin>>expn>>coef;
- Node *now=new Node(expn,coef);
-
- Node *p=lb;
- while(p->next&&p->next->expn < now->expn) //找要找节点的前一个节点
- {
- p=p->next;
- }
-
-
- if(p->next!=NULL&&p->next->expn==now->expn) //指数相同就合并
- {
- p->next->coef+=now->coef;
- }
- else //指数不同就插入
- {
- now->next=p->next;
- p->next=now;
- }
- }
- }
-
-
- void merge(Node *la,Node *lb)
- {
-
- Node *pa=la->next;
- Node *pb=lb->next;
-
- while(pa&&pb)
- {
- if(pa->expn==pb->expn) //如果指数相同
- {
- if(pa->coef+pb->coef!=0)
- cout<
expn<<" "<<(pa->coef+pb->coef)<//装入答案中 - pa=pa->next;
- pb=pb->next;
- }
- else if(pa->expn
expn) //如果pa的指数小于pb的指数 - {
- cout<
expn<<" "<coef<//装入答案中 - pa=pa->next;
- }
- else if(pa->expn>pb->expn) //如果pa的指数大于pb的指数
- {
- cout<
expn<<" "<coef<//装入答案中 - pb=pb->next;
- }
- }
-
- //扫尾
- while(pa)
- {
- cout<
expn<<" "<coef< - pa=pa->next;
- }
-
- while(pb)
- {
- cout<
expn<<" "<coef< - pb=pb->next;
- }
- }
-
-
-
- int main()
- {
- //la是第一个链表的开头 ,lb是第二个链表的开头
- Node *la=new Node(),*lb=new Node();
- la->next=NULL;
- lb->next=NULL;
-
- init(la,lb); //用两个链表分别整理两个多项式
-
-
- merge(la,lb); //实现两个多项式相加
-
-
- return 0;
- }
-
相关阅读:
网络原理---拿捏应用层:HTTP协议
博客园商业化之路:融资做与众不同的众包平台,让开发能力成为一种服务
2024.6.14刷题记录-KMP记录
C++学习笔记(三十)
[机缘参悟-64]:《兵者,诡道也》-5-孙子兵法解读-混战计
注意力机制
基于Matlab实现图像目标边界描述
LeetCode 26. 删除有序数组中的重复项 简单
(Java高级教程)第一章Java多线程基础-第一节3:线程状态和线程安全
[图论]哈尔滨工业大学(哈工大 HIT)学习笔记32-39
-
原文地址:https://blog.csdn.net/bei2002315/article/details/127957993