数据结构noj单链表的归并_NOJ_1005_多项式加法(采用尾插法建立单链表的运用)...

CHENZ

#include

using namespace std;

//待会可以尝试用list容器去写

struct lnode

{

int zhishu,xishu;

lnode *next;

};

lnode* creat(lnode* L)

{

lnode* p = L;

lnode *s;

int m,n;

do

{

cin >> m >> n;

s = new lnode;

s->xishu = m;

s->zhishu = n;

p->next = s;

p=s;

}while((m!=0)&&(n!=-1));

return L;

}

int display(lnode* L)

{

lnode* p;

if(L->next->zhishu==-1)

cout<

else

for(p=L->next;p->zhishu>=0;p=p->next)

{

if(p->xishu>0&&p!=L->next)

cout << "+";

if(p->xishu==1&&p->zhishu>0);

else if(p->xishu==-1&&p->zhishu>0)

cout << "-";

else

cout << p->xishu;

if(p->zhishu>0)

cout << "X" ;

if(p->zhishu>1)

cout << "^" <zhishu ;

}

cout << endl;

}

lnode* xiangjia(lnode *L,lnode *L1,lnode* L2)

{

lnode *p=L1->next;

lnode *q=L2->next;

lnode *r=L;

lnode *s;

while((p->zhishu>=0)||(q->zhishu>=0))

{

s = new lnode;

s->next = NULL;

//r->next = new lnode;

//r=r->next;

if(p->zhishu>q->zhishu)

{

s->xishu=p->xishu;

s->zhishu=p->zhishu;

p=p->next;

r->next = s;

r = r->next;

}

else if(p->zhishuzhishu)

{

s->xishu=q->xishu;

s->zhishu=q->zhishu;

q=q->next;

r->next = s;

r = r->next;

}

else

{

s->xishu=p->xishu+q->xishu;

s->zhishu=p->zhishu;

p=p->next;

q=q->next;

if(s->xishu != 0)

{

r->next = s;

r = r->next;

}

else

delete(s);

}

}

r->next = new lnode;

r=r->next;

r->xishu=0;

r->zhishu=-1;

return L;

}

int main()

{

int m,n;

lnode *L1;

lnode *L2;

lnode *L;

L1 = new lnode;

L1 = creat(L1);

display(L1);

L2 = new lnode;

L2 = creat(L2);

display(L2);

L = new lnode;

L = xiangjia(L,L1,L2);

display(L);

}

最后附上 王道数据结构给的头插法,微插法建立链表的代码

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值