Я пытаюсь реализовать определенную структуру данных дерева в Java; Я точно не знаю, что это за дерево. Вот пример того, что я пытаюсь сделать:Конкретная структура данных дерева в java
-----------------------------
| Board |
|
| Node1 Node2 Node3 Node4 |
| _ _ _ _
| |_| |_| |_| |_| |
---+------+------+------+----
| | | |
/ | | \
-------------- --- --- -----------
| Board | - - | Board |
| |
| Node1 Node2 | | Node1 ... |
| _ _ | _
| |_| |_| | | |_| ... |
---+------+--- ---+------+
/ | |
. . .
. . .
. . .
Так что я создал два класса: Board
и Node
.
Каждый
Board
состоит изArrayList
изNodes
:public class Board { ArrayList<Node> mContent; Board() { mContent = new ArrayList<Node>(); } Board(Board pBoard) { mContent = new ArrayList<Node>(pBoard.mContent); } void add(Node pNode) { mContent.add(pNode); } void add(String pString, Board pBoard) { Node tNode = new Node(pString, pBoard); mContent.add(tNode); } }
Каждый
Node
состоит изString
и ссылки на другуюBoard
:public class Node { String mLabel; Board mBoard; Node(){ mLabel = new String(); mBoard = null; } Node(String pLabel, Board pBoard){ mLabel = new String(pLabel); mBoard = new Board(Board); } void setBoard(Board pBoard){ mBoard = pBoard; } }
Мои вопросы :
О методе
add(Node pNode)
, мне нужно, чтобы создать новуюNode
, а затем добавить его вArrayList
?О методе
setBoard(...)
, мне нужно, чтобы создать новуюBoard
, а затем передать его вmBoard
, или просто делатьmBoard = pBoard
правильно?Как указать лист
Node
? Я пытался инициализировать его сnull
, но я получилNullPointerException
Спасибо!
Поскольку ваши отношения родитель-потомок находятся на узловых платах, вы должны реализовать указатель от узла к объектам платы. структура оборвана без этого. – Roam
@Roam, я не уверен, что моя реализация верна, но не будет ли это 'Board mBoard' из класса' Node' работать как указатель на объект 'Board'? – horta
Цель «Board» здесь немного запутанна. Обычно узлы в дереве представлены классом под названием «Node», который содержит ссылку на данные, которые необходимо сохранить, и ссылки на его дочерние элементы и родителя. То есть Рассмотрим объединение 'Board' в' Node'. –