В качестве необязательного назначения я думаю о том, чтобы написать собственную реализацию класса BigInteger, где я предоставлю свои собственные методы сложения, вычитания, умножения и т. Д.
Это будет произвольно длинное целое число, даже сотни цифр.
Выполняя математические расчеты для этих чисел, цифра за цифрой не сложно, как вы думаете, какой будет лучшая структура данных для представления моего "BigInteger"?
Сначала я подумывал об использовании массива, но потом подумал, что я могу все еще потенциально переполниться (исчерпать слоты массива) после большого добавления или умножения. Было бы хорошо использовать связанный список, так как я могу использовать цифры с O (1) сложностью по времени?
Есть ли какая-то другая структура данных, которая была бы даже лучше, чем связанный список? Должен ли тип, который содержит моя структура данных, быть наименьшим возможным целочисленным типом, который у меня есть?
Кроме того, должен ли я быть осторожным с тем, как хранить свою переменную "carry"? Должен ли он сам относиться к моему типу "BigInteger"?