在c ++中乘以链表

时间:2012-12-31 07:33:32

标签: c++ list pointers

我正在编写一个程序,允许用户使用双向链表创建大数字的算术运算。到目前为止,我已经制作了一个附加功能,但现在我正在努力制作一个用于乘法的功能,而我却无法想出一些好东西。我在想这样做:

假设有2个数字,1000和2000 | 0000(|表示由该数字组成的不同节点之间的中断)。如果你乘以数字,你会得到200 | 0000 | 0000。我可以创建一个函数,首先将2个节点相乘,然后将其划分为更小的节点。之后,它将乘以下一个节点,检查最后一个节点的大小,如果还剩下空间,则向该节点添加一个部分并将剩余部分放在下一个节点中。但是,如果一个数字小于另一个数字怎么办?然后你将它与未定义的数字相乘..这种方法有任何“未来”吗?或者我应该寻找另一个(我做了一些研究,但到目前为止没有找到任何用途)

1 个答案:

答案 0 :(得分:1)

如果表现对您不重要,您可以使用'highschool方法'。首先实现一个方法,将一个数字乘以一个数字,然后开始将其中一个数字乘以另一个数字(也为每个后续结果添加一个偏移量),然后添加这些数字。类似的东西:

123 x 456 =
         738
+       615
       492
______________
       56088

使用链接列表实现这一点应该不会太困难。