[英]Specific tree data structure in java
我正在尝试用Java实现特定的树数据结构; 我不确切知道这是什么类型的树。 这是我正在尝试做的一个例子:
-----------------------------
| Board |
|
| Node1 Node2 Node3 Node4 |
| _ _ _ _
| |_| |_| |_| |_| |
---+------+------+------+----
| | | |
/ | | \
-------------- --- --- -----------
| Board | - - | Board |
| |
| Node1 Node2 | | Node1 ... |
| _ _ | _
| |_| |_| | | |_| ... |
---+------+--- ---+------+
/ | |
. . .
. . .
. . .
所以我创建了两个类: Board
和Node
。
每个Board
包含一个Nodes
的ArrayList
:
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
谢谢!
回答你的问题:
pNode
传递的Node
; 你不需要创建一个新的。 Board
通过,应该使用pBoard
; 你不需要创建一个新的。 mBoard
。 或者,它可能有一个mBoard
,它有一个空的mContent
数组。 选择取决于您尚未发布的有关您希望树木如何降低的信息。 您可以考虑折叠您的结构。 目前尚不清楚为什么你不只有一个Node
类(使用ArrayList<Node> mContent
字段代替mBoard字段)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.