当前位置: 首页 > 知识库问答 >
问题:

如何更改内置java LinkedList类中的节点以添加右下指针?

澹台阳秋
2023-03-14

我已经开始使用Java。我想将内置Java LinkedList类与我的自定义节点类一起使用(我的节点类将包含字段:数据、向下指针、右指针)。有可能吗?

下面是我的节点类:

public class Node {
int data;
Node rt;
Node dw;

//constructor
public Node(int dataValue) {
    rt=null;
    dw=null;
    data=dataValue;
}
//methods:
public int getData() {
    return data;
}

public void setData(int dataValue) {
    data = dataValue;
}

public void setrt(Node nextVal) {
    rt=nextVal;
}

public void setdw(Node nextVal) {
    dw=nextVal;
}

public Node getrt() {
    return rt;
}

public Node getdw() {
    return dw;
}

我创建了以下实例:

LinkedList h=新的LinkedList

我想在java中使用内置的链表类实现一个2D链表。为了能够做到这一点,我想实现我的自定义节点。

共有2个答案

杜思远
2023-03-14

您可以为此实现创建自己的LinkedList。但是看起来有一些基本的事情你做错了:

  • 首先,根据您的实现,您将更好地使用图形,因为您正在寻找的是图形数据结构,每个顶点有四条边。
  • 其次,您不应该修改Java提供的存量数据结构/集合API。如果你真的想使用不同的数据结构,那么创建它并使用它。
  • 第三个也是最重要的要考虑的是,你应该总是尝试使用最有效的数据结构来解决问题。例如,你可以创建一个2-D Linkedlist,但是问问你自己,它是否是存储2-D数据最有效的方法?你可能会使用矩阵或图表来存储数据。
  • 此外,每当您创建或使用数据结构时,请考虑您的应用程序是否读/写很重,在此基础上,您可以优化数据的存储和获取。

但是,看起来您才刚刚开始,所以我建议您先浏览基本的数据结构书籍或在线资源。

您也可以浏览下面的URL,它有类似的要求。

带有java的linkedlist类的自定义节点类

丌官翰采
2023-03-14

否,LinkedList的节点类是私有的,未公开,您无法访问它。除了可能通过一些反射黑客。

即使可以访问node类,也可能无法用自己的类替换它。LinkedList类被硬编码为使用自己的节点类。

如果您真的坚持,您可以获取LinkedList类的源代码,并将其修改为使用节点类。但是,请在执行此操作之前检查此方法是否存在任何许可证问题。另外,我的直觉是,与从头开始编写自定义链表类相比,它不值得这么麻烦。

Java的LinkedList是一个双链接列表,因此每个节点都有上一个和下一个指针以及对数据的引用。

 类似资料:
  • 我正在将以下数据作为赋值的一部分读取到二叉树(不是严格的二叉查找树)中: 它们被读取到python、和中的三个列表中,其中第一行具有整数是节点数。接下来的n行是键,左,右。其中左是父级左子级的键是,同样右子级的键是,因此例如第一行是4的键是根,意味着2是4的左子级,意味着5是4的右子级,以此类推,-1代表左右意味着这个键是叶子: 此示例的树结构 问题是正在添加根的左右子节点,但没有添加其中的任何子

  • 问题内容: 我想在程序获取某些特殊单词的同时,实时地绘制它们。所以我写了一段很好的代码,但是我仍然不能用键盘上的移动键改变指针的位置,并从我移动的位置开始输入文字。谁能给我一个提示,怎么做?这是代码: 问题答案: 轻松做到 正如您似乎已经在使用该模块一样,最简单易行的光标定位方式应该是使用相应的ANSI控件序列(请参阅:http : //en.m.wikipedia.org/wiki/ANSI_e

  • 我有一个spring批处理作业,它从数据库中读取数据,然后输出到多个csv。在我的数据库中,我有一个名为divisionId的特殊列。对于divisionId的每个不同值,都应该存在一个CSV文件。我使用ClassifierCompositeItemWriter拆分数据。 目前,我为divisionId的每个不同值定义了一个ItemWriter bean。bean是一样的,只是文件名不同。 如何更

  • 我有一本书。NETCore2.0WebAPI应用程序,其中我将“Flurl.Http”(版本2.1.0)NuGet包添加到我的项目中。 我正在尝试使用Flurl对一个VisualStudioTeamServices(VSTS)APIendpoint进行简单的RESTAPI调用。 但是,我正在调用的特定VSTS api终结点要求将Content-Type设置为“应用程序/json-补丁json”,而

  • 问题内容: 当我打电话 这个孩子被添加到最后。有没有办法让这个新孩子成为第一个孩子? 问题答案: 如前所述,SimpleXML不支持该功能,因此您必须使用DOM。我的建议是:用程序中需要使用的任何内容扩展SimpleXMLElement。这样,您可以将所有DOM操作和其他XML魔术保留在实际程序之外。通过将两个问题分开,可以提高可读性和可维护性。 以下是使用新方法prependChild()扩展S

  • 我正在做一个项目,以创建一个超过2个子节点的树。我明白在创建二叉树时,我们可以只创建一个左节点和一个右节点来充当子节点,但当我在网上寻找创建树的帮助时,我找到的每一个解决方案都谈到了创建二叉树。我明白创建树的部分意味着您需要创建子节点数组或arraylist,但我不明白如何将数据放入数组,或者如何将子节点数组“连接”到父节点? 这是我目前掌握的代码。我知道这不是很多,但我正在努力刚刚开始这个项目。