作为一项可选任务,我正在考虑编写自己的 BigInteger 类实现,我将在其中提供自己的加法、减法、乘法等方法。
这将是任意长的整数,甚至是数百位数。
在对这些数字进行数学运算时,逐个数字并不难,您认为代表我的“BigInteger”的最佳数据结构是什么?
起初我正在考虑使用数组,但后来我想在大的加法或乘法之后我仍然可能会溢出(数组插槽用完)。这是否是使用链表的好案例,因为我可以使用 O(1) 时间复杂度来处理数字?
有没有比链表更适合的其他数据结构?我的数据结构所持有的类型应该是我可以使用的最小整数类型吗?
另外,我应该注意如何存储“进位”变量吗?它本身应该属于我的“BigInteger”类型吗?