我正在尝试使用列表编写我自己的BigInt实现来跟踪大整数中的所有数字。每个类实现都在一个单独的文件中。
struct node
{
int value;
node *next;
};
class LIST
{
private:
node *head;
public:
. . .
};
class BigInt
{
Private:
LIST numList;
Public:
BigInt addNum(BigInt& b);
. . .
};
如何为BigInt类实现addNum方法?我知道如何在给定头指针的情况下将数据添加到两个列表中,但是在我的BigInt类中,我无法访问列表类的头指针,所以我该怎么做呢?任何提示都将不胜感激。
转让说明:
创建基于链表的任意精度无符号整数类BigInt。您 可以用简单的方式创建链表,而不用打扰载体元素 例如,只需创建一个包含数字和下一个指针的结构。你可以管理 BigInt类本身内的链表,或者您也可以使用链表 class作为BigInt类的成员(通过聚合/组合)来管理 数字列表。 BigInt还需要保持大小(多少位十进制数字) 数字)和打印宽度(默认为数字的大小)。
对于BigInt类,实现normal(unsigned long long int参数),copy 和default(设置为0)构造函数,一种分配任意unsigned long long int的方法 到BigInt(构造函数可能使用),一个添加两个BigInt的方法 返回一个带有结果的新BigInt,一个乘以两个BigInts的方法 返回一个带有结果的新BigIntT,一个返回十进制数的方法 BigInt中的数字,赋值=运算符和析构函数。
答案 0 :(得分:0)
实施双向链表可能是一个更好的主意http://en.wikipedia.org/wiki/Doubly_linked_list。当您考虑添加两位数时,如果总和大于9,则需要携带。双重链表对此非常有用。
你的课程看起来像这样:
class Node {
int val; 节点*下一个; 节点*上一个; 9
}