【发布时间】:2014-06-20 17:59:31
【问题描述】:
我的 LinkedList 通过在每个节点中有一个数字来表示大数字。
我可以使用以下代码在 LinkedList 中表示正大整数:
public BigInteger(int x)
{
list = new LinkedList<Integer>();
while (x > 0)
{
list.push(( x % 10 ));
x = x / 10;
}
}
声明:
BigInteger bigPositive = new BigInteger(91234)
生产:
[9,1,2,3,4]
但是,我不确定如何表示大的负整数,例如 -9321312345
【问题讨论】:
-
BigInteger 是你自己的班级吗?已经有一个大整数实现。
-
这将比
java.math.BigInteger更复杂(制作)和慢很多,但如果你是为了好玩,这可能是一个有趣的项目 -
这似乎非常低效。您正在为每个数字存储一个列表节点和一个 BigInteger。然后是以十进制存储它的问题,这将使算术“有趣”。这只是为了您的教育还是您打算在某处的“生产”代码中使用它?顺便说一句,只需向您的班级添加一个
boolean符号(true=negative,false=positive)成员。 -
这只是为了我自己的教育。我正在尝试学习如何实现我自己的 LinkedList,这只是我遇到的问题之一。最终,我想制作可以对 LinkedList 执行简单算术运算的方法,所以我想知道如何处理负数。
-
将符号存储为额外的
int字段,例如 -1、0 或 +1
标签: java list data-structures linked-list