标题:如何用线性链表实现两个整书的相加呢?
只看楼主
NV77
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2009-11-9
结帖率:66.67%
已结贴  问题点数:20 回复次数:6 
如何用线性链表实现两个整书的相加呢?
怎么用线型链表实现两个整数的相加呢?帮忙给个算法。谢谢
搜索更多相关主题的帖子: 相加 线性 链表 
2009-11-14 21:51
NV77
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2009-11-9
得分:0 
谁帮个忙啊    谢谢啊   
2009-11-15 22:16
玩出来的代码
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:河南新乡
等 级:贵宾
威 望:11
帖 子:742
专家分:2989
注 册:2009-10-12
得分:10 
两个整数相加,如45+50=..?一个节点存放一个整数?
或者是一个节点存放一位数,如45,4 5分别存放在两个节点中?
第一种,可以建立一个链表,把需要的数存入节点中,相加释放一个节点,或建立两个链表相加清空一个链表。
第二种情况,可以实现较大的数相加,建立两个链表,一个节点存放一个整数的一位数,存放数小的链表加到另一链表上,从链表表尾开始相加,向前移(用双向链表)。如果最高位有进位在输出结果的时候应该判断一下是否大于10输出相应的最高位的值,或者建立链表时置第一个节点为0,输出时判断第一个节点是否为0.



离恨恰如春草,更行更远还生。
2009-11-15 23:27
NV77
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2009-11-9
得分:0 
回复 3楼 玩出来的代码
非常感谢你    也很佩服你  向你看齐了  
再问一下   比如一个四位数    一个结点存放一位
比如2345    怎么放在四个结点里呢  
自动的吗?
2009-11-16 22:45
玩出来的代码
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:河南新乡
等 级:贵宾
威 望:11
帖 子:742
专家分:2989
注 册:2009-10-12
得分:10 
可以以字符串的形式输入,为一个节点赋值时转换成数值。如输入的字符串是“12345”,为第一个节点赋值时,p->data=
a[i]+'0';(i为1);循环控制
while(a[i]!='\0')
{
     分配空间;
     赋值;
     接到链表表尾;
     i++;
}
或者把一个整数拆开输入,12345,输入,1 2 3 4 5

离恨恰如春草,更行更远还生。
2009-11-17 13:16
NV77
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2009-11-9
得分:0 
回复 5楼 玩出来的代码
一语道破   
我看到一个例子    就是用的字符串  
当时没看明白      现在明白了  
完全有思路了     感谢
2009-11-17 17:56
程落薰
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2012-3-22
得分:0 
回复 3楼 玩出来的代码
那如果出现了两个数据不一样长,比如:45987432+49797 呢?我采用的是用单链表逆序建立之后进行相加,并存放到另外一个单链表中,在逆序输出的方法。但在存放是发现,如果不是一样长的,那剩下的数据要怎么进行相加呢?
2012-05-13 21:41



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-292314-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.173909 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved