Java 有 N 片叶子的树?
Java tree with N leaves?
我正在解决 Java 问题,该问题需要 java 实施具有 N 个叶子的树。为此,我决定使用 XML Dom 树来表示问题。
Dom4j 可以吗?
这个问题基本上是一棵游戏树,它代表所有移动来计算赢得游戏所需的最小移动数。 Dom4j 有什么有用的示例吗?谢谢
我会尝试回答,但考虑到一些注意事项:
首先直接回答你的问题是否可以用XML Dom树来表示问题? - 是的,这是可能的,但在我看来,使用 XML DOM 树来表示数据结构并不是那么自然(事实上我也可以称之为矫枉过正),除非你想序列化它作为 API 调用的结果,数据结构传输到磁盘或网络。
示例如下:http://dom4j.sourceforge.net/dom4j-1.6.1/guide.html
一个更清晰、更简单的替代方法是定义一个 Node
class,如下所示:
class Node
{
int value; //assuming the node holds an integer value
List<Node> childNodes; // these are the N child nodes.
}
您的游戏算法随后可以遍历子节点列表以执行其计算逻辑。
上述定义可能出现的一个限制是,如果您想搜索特定的子节点,则需要遍历列表 - 而如果您使用 DOM4j,则可以使用 XPath .但是使用 DOM 和 XPath 在内存消耗方面有其自身的限制 - 详情请参阅 this。
然而上面提到的简单数据结构不会有相同的内存影响 - 而且在计算过程中操作数据结构会更容易。
希望对您有所帮助。
我正在解决 Java 问题,该问题需要 java 实施具有 N 个叶子的树。为此,我决定使用 XML Dom 树来表示问题。 Dom4j 可以吗?
这个问题基本上是一棵游戏树,它代表所有移动来计算赢得游戏所需的最小移动数。 Dom4j 有什么有用的示例吗?谢谢
我会尝试回答,但考虑到一些注意事项:
首先直接回答你的问题是否可以用XML Dom树来表示问题? - 是的,这是可能的,但在我看来,使用 XML DOM 树来表示数据结构并不是那么自然(事实上我也可以称之为矫枉过正),除非你想序列化它作为 API 调用的结果,数据结构传输到磁盘或网络。
示例如下:http://dom4j.sourceforge.net/dom4j-1.6.1/guide.html
一个更清晰、更简单的替代方法是定义一个 Node
class,如下所示:
class Node
{
int value; //assuming the node holds an integer value
List<Node> childNodes; // these are the N child nodes.
}
您的游戏算法随后可以遍历子节点列表以执行其计算逻辑。
上述定义可能出现的一个限制是,如果您想搜索特定的子节点,则需要遍历列表 - 而如果您使用 DOM4j,则可以使用 XPath .但是使用 DOM 和 XPath 在内存消耗方面有其自身的限制 - 详情请参阅 this。
然而上面提到的简单数据结构不会有相同的内存影响 - 而且在计算过程中操作数据结构会更容易。
希望对您有所帮助。