在我的课程中,我有一个创建Number类的赋值,它具有算术运算。 (加/减/乘法/等)
有一部分我很困惑 - 双重链接列表。讨论它的规范的唯一部分我发现有点令人困惑。我不知道我应该存储什么 - 输入所有数字?它说高位数节点的高点......我不知道这意味着什么。另外,我不确定如何实现双向链接列表...只是引用下一个“高位数字”?
另外 - 什么是Node
?该作业仅表示我要创建class Number
...但Java API中的Node表示它与HTML标记有关?我不应该使用Number low, high
???
以下是详细说明双向链表部分的规范部分:
数字将存储在双向链接列表中(此处不使用泛型)。每个节点都会 有一个int值字段,它将保存一个数字(0到9)和两个指针字段, 上一页和下一页。
The Number class will have five fields: private Node low, high; private int digitCount = 0; private int decimalPlaces = 0; private boolean negative = false;
高点到高位数的节点,低点指向 低位数字的节点, digitCount是列表中存储的位数, decimalPlaces是位数(节点) 在小数位后面,负数表示符号。
我不是要求一个确切的解决方案,只是一些指导和理解。我非常感谢任何帮助。
答案 0 :(得分:1)
此上下文中的节点是链接列表的元素。
似乎你应该将一个数字表示为链表,其中每个节点包含一个数字..
所以数字
12.34
将包含4个节点,每个节点分别为1,2,3和4.您的数字将具有2的digitCount和2的decimalPlaces,因为小数点前后各有2位数。
您的链接列表应该是
1 <-> 2 <-> 3 <-> 4
其中<->
表示链表的双重链接性质(前一节点和下一节点的指针。)应该有来自1&lt; - &gt;的指针。如果列表应该是循环的,那么也是如此。
您的Number类的大纲看起来像
public class MyNumber {
DigitNode low;
DigitNode high;
int digitCount;
int decimalPlaces;
bool negative;
}
你的DigitNode课程大纲看起来像是
public class DigitNode {
int digit;
DigitNode next;
DigitNode prev;
}
我忽略了像私人/受保护的东西以及像setter / getters这样的东西。您现在可以通过获取low
属性,获取其“下一个”属性并循环直到next
为空来迭代数字。
答案 1 :(得分:1)
看起来数字是一个节点,基于您的规范中的文字:
...the number of digits (nodes) after the...
在这种情况下,高阶似乎意味着下一个10的幂,所以下一个更大的数字和低阶似乎是相反的,所以下一个最低的数字。