Я пытаюсь написать свою собственную реализацию BigInt, используя списки, чтобы отслеживать все цифры в большом целом числе. Каждая реализация класса находится в отдельном файле.
struct node
{
int value;
node *next;
};class LIST
{
private:
node *head;
public:
. . .
};class BigInt
{
Private:
LIST numList;
Public:
BigInt addNum(BigInt& b);
. . .
};
Как я могу реализовать метод addNum для класса BigInt? Я знаю, как добавить данные в два списка, используя указатель заголовка, но в моем классе BigInt я не могу получить доступ к указателю заголовка класса списка, так как я могу это сделать? Любой совет будет оценен.
Инструкция по назначению:
Создайте целочисленный класс BigInt с произвольной точностью на основе связанного списка. Вы
может создать связанный список простым способом, не заботясь об элементах-носителях в
Например, просто создайте структуру, которая содержит цифру и следующий указатель. Вы можете управлять
связанный список внутри самого класса BigInt, или же вы можете использовать связанный список
класс как член (по совокупности / составу) класса BigInt для управления
список цифр. BigInt также необходимо сохранить размер (сколько десятичных цифр в
число) и ширину печати (по умолчанию соответствует размеру номера).
Для класса BigInt реализуйте обычный (параметр unsigned long long int), скопируйте
и конструкторы по умолчанию (равные 0), метод для назначения произвольного без знака long long int
в BigInt (который могут использовать конструкторы), метод для добавления двух BigInts
возвращая новый BigInt с результатом, метод для умножения двух BigInts
возвращая новый BigIntT с результатом, метод для возврата десятичного числа
цифры в BigInt, оператор присваивания = и деструктор.
Реализация двусвязного списка может быть даже лучшей идеей http://en.wikipedia.org/wiki/Doubly_linked_list. Когда вы думаете о добавлении двух цифр, если сумма больше 9, вы должны нести. Двусвязный список был бы действительно полезен для этого.
Ваш класс будет выглядеть так:
class Node {
int val;
Узел * следующий;
Узел * предыдущий; 9
}
Других решений пока нет …