采用单向链表实现一元多项式的存储并实现两个多项式相加并输出结果。
算法分析:
不采用申请新节点的方法,要充分利用老节点。
代码实现如下:
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
using namespace std;
typedef struct node
{
int coef,exp;
struct node *next;
} JD,*LinkList;
LinkList Create()
{
LinkList head,p,q;
int c,e;
head=(LinkList)malloc(sizeof(JD));
p=head;
head->next=NULL;
cin>>c>>e;
while(c!=0&&e!=0)
{
q=(LinkList)malloc(sizeof(JD));
q->coef=c;
q->exp=e;
q->next=NULL;
p->next=q;
p=p->next;
cin>>c>>e;
}
return head;
}
void Add(LinkList &LA,LinkList &LB,LinkList &LC)
{
LinkList pa,pb,pc;
pa=LA->next;
pb=LB->next;
pc=LC;
while(pa!=NULL&&pb!=NULL)
{
if(pa->exp<pb->exp)
{
pc->next=pa;
pc=pa;


5962

被折叠的 条评论
为什么被折叠?



