用于确定所有可能的连接顺序的C ++算法

时间:2014-04-01 10:11:13

标签: c++ database graph

b我目前正在对数据库进行一些研究。

我需要找到给定连接图的所有可能的连接顺序。该图表作为附属列表实现。

示例:

SELECT * FROM a, b, c, d WHERE a.x = b.x && b.y = c.y && b.z = d.z

给出了以下图表(边缘):

(a,b)
(b,c)
(b,d)

并且所有可能的连接顺序都是(x是连接运算符):

((a x b) x c) x d
((a x b) x d) x c
(a x (b x c)) x d
(a x (b x d)) x c
a x ((b x c) x d)
a x ((b x d) x c)

我的第一个想法是为每个顶点运行一种PRIM算法。每次,我们都可以添加不同的边来将一个不属于MST的顶点连接到MST,我们找到了另一个连接顺序。这种方法有效吗?是否有更简单的解决方案来获得所有可能的连接订单?

Moritz的

0 个答案:

没有答案