我正在尝试在 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
谢谢!