假设我有一个矩阵MxN,填充值介于0和5之间。我现在想要确定矩阵中最大的连接树,其中矩阵的值被认为是节点。如果节点彼此相邻或者水平或垂直,并且两个节点的值相同,则称一对节点被连接。树的大小等于树中的节点。查找矩阵中最大的连接树
一个例子:
1 0 3 0 0 2 2 0 0 0 0 0
1 1 2 2 2 0 2 0 0 0 0 0
0 1 0 3 0 0 2 0 0 0 0 2
3 1 0 3 0 0 2 0 2 2 2 2
0 0 0 0 0 0 0
3 0 0 3 3 0 0
3 3 3 3 0 0 0
在左侧,在左侧的1节点形成最大树。在右侧,3个节点构成最大的树,而另外两个树构成2个节点。我知道我大概可以做一个简单的深度优先搜索,但是我想知道是否有一些众所周知的我错过了,也许在图论的领域(比如Kruskal的最小生成树算法,但是对于这个例子)。
将物品的群组称为“岛屿”会不会更好 - 假设你已经把所有的1降到了第一个矩阵的LHS - 这个1仍然算作'树'吗? – 2010-08-30 22:39:36
当然,右边最大的树是由'0'节点组成的? – 2010-08-30 22:40:51
@Stephen - 是的,它看起来就是这样 - 除非这不被认为是一棵树。 – 2010-08-30 22:41:31