链表中有多个信息部分

Having More than One Info Part in LinkedList

我们被分配了一个使用链表实现优先级队列的任务。我脑海中的逻辑是,如果我向节点添加 2 个信息部分,一个用于包含要打印的数据,另一个用于存储用于确定节点优先级的密钥,那么我可以根据优先级使节点出列。

现在我很困惑,将两个信息部分添加到单个节点是否合法?

喜欢

private class Node {

  private int priority;
  private String job;
  private Node Next;

}

如果是双向链表那么反向指针也是必须的

链表中一个节点放两条信息肯定没问题。事实上,如果您正在构建一个优先级队列,您可能 需要 某种优先级 'key' 来排序您的队列,以及 'value', (a.k.a。'data' 或 'payload')节点保留以备后用。

在您的例子中,String 是值,int 是键/优先级。你可以认为这个节点除了它的键之外还有一条信息(字符串)。

如果这不是您想要的,您可以创建一个更灵活的链表,该链表可以在其节点中保存任何数据,包括包含 int 和 String 的单个数据。因此,这可以用于优先级队列或建立在链表上的任何其他类型的抽象数据结构。

你的代码看起来像 Java,所以如果你想知道如何在 Java 中制作这个更灵活的节点,你可以查看 Generics in Java.