C++:在给定以下文本输入的情况下,求有向图的阶数
C++ : Find the degree of a directed graph given the following text input
我试图找到一个相当大的图(用于图着色)在.txt文件中表示的程度,例如:
# Directed graph (each unordered pair of nodes is saved once): roadNet-PA.txt
# Pennsylvania road network
# Nodes: 1088092 Edges: 3083796
# FromNodeId ToNodeId
0 1
0 6309
0 6353
1 0
6353 0
6353 6354
6353 6364
6353 6386
6309 0
6309 6310
6309 6344
2 3
2 4
2 7
. .
. .
. .
Etc.
每一行表示连接第一节点和第二节点的边。在给定这些信息的情况下,确定每个顶点的度数的好方法是什么?答案不一定是C++,伪代码就足够了:)
谢谢。
计算每个数字(节点)出现的次数。
void update_degree(std::map<int, int> °ree, int node) {
if (degree.find(node) == degree.end()) {
degree[node] = 1;
} else {
degree[node]++;
}
}
std::map<int, int> get_degree(std::vector<std::pair<int, int> > edges) {
std::map<int, int> degree;
for (std::vector<std::pair<int, int> >::iterator it = edges.begin(); it != edges.end(); it++) {
update_degree(degree, it->first);
update_degree(degree, it->second);
}
return degree;
}
相关文章:
- 构建可组合有向图(扫描仪生成器的汤普森构造算法)
- C++创建指向有向图中节点的指针数组
- 如何仅在 2 个节点之间获取最短路径,给定邻接列表有向图?
- 在儿童的特定情况下,向下渗透MIN二进制堆失败
- 有向图 - 如何计算图中彼此顶点可到达的顶点数?
- C++计算有向图中的最短路径
- 使用非递归 DFS 检测有向图中的周期
- 如何将这些节点连接为有向图
- 如何使用广度优先搜索确定是否可以在有向图中到达顶点
- 在有向图中精确访问所有节点一次
- 在有向图中查找第二条最短路径
- 关于如何处理有向图的一个想法
- 找到有向图C 的最短路径
- 分析输入文件以创建有向图C++
- 在使用无序多映射实现的有向图中查找循环
- 如何找到在c++中实现的有向图的所有路径作为邻接列表
- 如何创建具有多个数据的节点的有向图
- 有向图中的广度优先搜索
- 查找路径的有向图邻接矩阵
- C++:在给定以下文本输入的情况下,求有向图的阶数