我在C ++中将我的图形实现为顶点,如下所示:
struct vertex {
string node_id;
string node_name;
int no_servers;
float mu;
int node_type; // 1-7
float lambda;
float time;
bool CD; // 0 if converges join----- and 1 if div split
vector<int> adj; // children :adjacency list -vector- of
// edges contains the indexes to vertex
};
struct fill_data {
vertex node_data;
int ORDER; // for edges --- father
fill_data* next;
};
我需要图表的所有可能路径。在我将到达的每个节点中,将使用其一些父信息进行一些计算。
我无法找到结构或离开,因为每个节点的子节点数因节点而异。
答案 0 :(得分:0)
在邻接列表中,除了VERTEX之外,您还有一个EDGE。在每个EDGE中指定FROM和TO,这将表示EDGE两端的顶点。
为了找到来自给定VERTEX的所有路径,您只需循环邻接列表并找到所有带有FROM的EDGES等于您要查找其所有子项的VERTEX。
示例:如果要查找顶点A中的所有路径,则搜索邻接列表并过滤所有具有FROM(或源节点)等于A的边,结果是来自顶点A的可能路径。