我有一个csv文件的节点和csv文件的边缘-所有的节点都是字符串。我需要帮助,请问如何在python中建立这个图的邻接矩阵?
数据示例:
Nodes csv:
a
b
c
d
Edges csv:
a,b
b,c
a,c
d,a
b,d
I want it to be presented as an adjacency matrix:
a b c d
a 0 1 1 1
b 1 0 1 1
c 1 1 0 0
d 1 1 0 0
谢谢!
设G= (V,E)是一个有向图,以邻接列表格式给出。定义有向图G‘= (V,E'),其中边(u,v)∈E’当且仅当(v,u)∈E(即G‘反转G中每个边的方向)。描述了一种在O时间内求G‘邻接表表示法的算法。
是否有一种简单的方法来反演邻接表?
说如果是:
a-> b
b-> de
c-> c
d-> ab
e->
to:
a-> d
b-> ad
c-> c
d-> ab
e-> b
我需要创建一个子图从邻接矩阵选择的从属关系数据。如何匹配邻接矩阵和从属矩阵?
取以下邻接矩阵:
A B C D E F G
A 0 1 0 1 0 1 0
B 1 0 1 1 0 1 0
C 0 1 0 0 0 0 0
D 1 1 0 0 1 1 0
E 0 0 0 1 0 1 0
F 1 1 0 1 1 0 1
G 0 0 0 0 0 1 0
以及以下隶属关系矩阵:
我想用一个邻接列表来表示一个图的结构,我不需要我的边被加权。我想练习一些简单的练习,比如找一个周期,BFS,DFS,添加删除边缘.没什么花哨的。(我也可以用Hashtable来完成它,但我需要更多的List实践)
type 'a dgraph = DG of ('a * 'a list) list
我的问题是:
这是DG的合理表述吗?
这些不应该是递归类型吗?(不知何故感觉更自然)
我不想自暴自弃,从一开始就做一个设计糟糕的type,这将导致一个更复杂的实现。
例子:
let g =
DG (
[
(&
程序的输入是图中的边集。例如,考虑以下简单的有向图:
a -> b -> c
这个图的边集是
{ (b, c), (a, b) }
因此,给定一个有向图作为一组边,如何确定该有向图是否为树?如果它是一棵树,那么树的根节点是什么?
首先,我想看看如何表示这个图,邻接表/邻接矩阵/其他东西?如何利用您选择的表示法来有效地回答上述问题?
编辑1:
有些人正在指导如何使用DFS进行周期检测,但问题是从哪个节点启动DFS。因为它是一个有向图,所以我们不能从一个随机节点启动DFS,例如,如果我从顶点'c‘启动一个DFS,它将不会继续进行,因为没有后边可以去到任何其他节点。这里的后续问题
我想创建一个和弦图表来展示不同项目之间的关系,基于它们的关键字。所以我的数据看起来像这样( A,B,C代表关键字):
A B C
Project 1 1 0 1
Project 2 0 1 1
Project 3 1 0 1
为了创建chord图,我需要将数据转换为邻接矩阵或边列表。
我试着在原始数据集上使用igraph,但它需要一个邻接矩阵,而我不知道如何转换数据。
邻接矩阵如下所示:
A B C
A - 0 1
B 0 - 1
C 2 1 -
我在变量a中用Scala表示图的邻接列表。
val a = new HashMap[Int, Vector[Tuple2[Int, Int]]] withDefaultValue Vector.empty
for(i <- 1 to N) {
val Array(x, y, r) = readLine.split(" ").map(_.toInt)
a(x) += new Tuple2(y, r)
a(y) += new Tuple2(x