Как изменить узел во встроенном Java LinkedList классе, чтобы добавить указатель вправо и вниз? - PullRequest
0 голосов
/ 16 декабря 2018

Я начал использовать 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 = new LinkedList <> ();

Я хочу реализовать двухмерный связанный список, используя встроенный класс связанного списка в Java.Чтобы иметь возможность сделать это, я хочу реализовать свой пользовательский узел.

Ответы [ 2 ]

0 голосов
/ 18 декабря 2018

Вы можете создать собственный LinkedList для этой реализации.Но похоже, что есть некоторые основные вещи, которые вы делаете неправильно:

  • Во-первых, согласно вашей реализации, вам будет лучше с Graph, потому что вы ищете структуру данных графа, скаждая вершина имеет четыре ребра.
  • Во-вторых, вам не следует изменять существующие структуры данных / API сбора данных, предоставляемые Java.Если вы действительно хотите использовать другую структуру данных, то создайте ее и используйте.
  • И третье и самое важное, что следует учитывать, - это всегда пытаться использовать наиболее эффективные структуры данных для решенияпроблема.Например, вы можете создать 2-D Linkedlist, но спросите себя, является ли он наиболее эффективным для хранения 2-D данных?Может случиться так, что вы могли бы использовать матрицу или график для хранения данных.
  • Кроме того, всякий раз, когда вы создаете или используете структуру данных, учитывайте, является ли ваше приложение тяжелым для чтения / записи, основываясь на том, что вы можете оптимизироватьхранение и извлечение данных.

Но, похоже, вы только что начали, и поэтому я бы посоветовал сначала просто просмотреть основные книги по структуре данных или онлайн-ресурсы.

Вы также можете перейти по следующему URL, который имеет аналогичное требование.

пользовательский класс узла с классом связанного списка Java

0 голосов
/ 16 декабря 2018

Нет, класс узла LinkedList является частным, не предоставляется, вы не можете получить к нему доступ.За исключением, вероятно, некоторого взлома рефлексии.

И даже если бы вы могли получить доступ к классу узла, вы, вероятно, не могли бы заменить его своим собственным классом.Класс LinkedList жестко запрограммирован для использования своего собственного класса узлов.

Если вы действительно настаивали на этом, вы можете взять исходный код класса LinkedList и изменить его для использования вашего класса узлов.Пожалуйста, проверьте, есть ли какие-либо проблемы с лицензией при таком подходе, прежде чем вы сделаете это.Кроме того, у меня есть ощущение, что это не стоит хлопот по сравнению с написанием собственного класса связанного списка с нуля.

Java LinkedList - это двусвязный список, поэтому каждый узел имеет предыдущий и следующий указатели и ссылку на данные..

...