双重链表混淆

时间:2011-09-16 16:29:19

标签: java nodes doubly-linked-list

在我的课程中,我有一个创建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是位数(节点)       在小数位后面,负数表示符号。

我不是要求一个确切的解决方案,只是一些指导和理解。我非常感谢任何帮助。

2 个答案:

答案 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的幂,所以下一个更大的数字和低阶似乎是相反的,所以下一个最低的数字。

相关问题