我正在编写一些代码,使用树(Tree)(一个常规的树形结构,可以拥有无限数量的节点,但没有交叉,即两个父节点不会指向同一个子节点)。无论如何,需要解决两个问题:
1)是否有已知的算法可以在树中查找子树。
2)是否有任何Java库(或任何其他库)已经实现了这个算法? 即使没有,有没有人推荐好的通用Java树库?
我想使用这些树以树形式存储数据,而不是为了它们的搜索功能。
稍作说明:我正在将树作为游戏的一部分,以保留发生某些事件时发生的历史记录。例如,A可以打B,B可以打两个A,然后可以再打两个A等等。
这将类似于:
A
|
B
/
A
/ \
A A
/ \
A A
当然不仅仅有A和B。我想要做的是(针对成就系统)能够告诉我们,比如A已经击中了两个A:
A
/ \
A A
我希望能够轻松地知道第一棵树是否包含该子树。如果不必要的话,我不想自己编写所有执行此操作所需的代码 :)