java多项式相加 链表_多项式链表多项式相加

6a82d2c8780c8c680331dc63be530b40.png

//多项式相加

LinkList* add2Link(LinkList*L1, LinkList*L2)

{

LinkList*p1, *p2;

LinkList*head , *pre, *p;

head = new LinkList;

head->next = NULL;

pre = head;

p1 = L1->next;

p2 = L2->next;

while (p1&&p2)

{

if (p1->exp == p2->exp)

{

p = new LinkList;

p->coef = p1->coef + p2->coef;

p->exp = p1->exp;

p1 = p1->next;

p2 = p2->next;

}

else if ((p1->exp) < (p2->exp))

{

p = new LinkList;

p->coef = p1->coef;

p->exp = p1->exp;

p1 = p1->next;

}

else

{

p = new LinkList;

p->coef = p2->coef;

p->exp = p2->exp;

p2 = p2->next;

}

pre->next = p;

pre = p;

}

if (p1&&!p2)

{

while (p1)

{

p = new LinkList;

p->coef = p1->coef;

p->exp = p1->exp;

p1 = p1->next;

pre->next = p;

pre = p;

}

}

else if (!p1&&p2)

{

while (p2)

{

p = new LinkList;

p->coef = p2->coef;

p->exp = p2->exp;

p2 = p2->next;

pre->next = p;

pre = p;

}

}

pre->next = NULL;

return head;

}

struct Node

{

int data;

int exp;

};

list* add2list(list* l1, list*l2)

{

listl3;

while(!l1->empty()&&!l2->empty())

{

if(l1->back().exp==l2->back().exp)

{

Node n1=new Node;

n1.data=l1->back().data+l2->back().data;

n1.exp=l1->back().exp;

l3.push_front(n1);

l1->pop_back();

l2->pop_back();

}

else

{

if(l1->back().exp>l2->back().exp)

{

Node n1=new Node;

n1.data=l2->back().data;

n1.exp=l2->back().exp;

l3.push_front(n1);

l2->pop_back();

}

else

{

Node n1=new Node;

n1.data=l1->back().data;

n1.exp=l1->back().exp;

l3.push_front(n1);

l1->pop_back();

}

}

}

while(!l2->empty())

{

Node n1=new Node;

n1.data=l2->back().data;

n1.exp=l2->back().exp;

l3.push_front(n1);

l2->pop_back();

}

while(!l1->empty())

{

Node n1=new Node;

n1.data=l1->back().data;

n1.exp=l1->back().exp;

l3.push_front(n1);

l1->pop_back();

}

return *l3;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值