判断子图连通性
基本概念
从总图中获得子图的边
判断子图连通性
基本概念
- 图:顶点+边
- G = { V, E }
从总图中读取子图边
- 输入:总图的边,子图顶点
- 输出:子图的边
- 思路: 将txt中数据读入内存进行处理。
定义边的数据类型为
std::vector<std::pair<int, int>> edges;
定义顶点的数据类型为
vector<int> image_ids;
从txt中读取顶点放入顶点数据类型。 边连接了两个顶点,在txt文件中读取一行的两个数据放入边的数据类型。难点在于如何将一行的两个数据放入pair中。这里将边分成了两个txt文件,读取txt文件内容分别放入pair中。
- 使用python将edge.txt分为edge1.txt和edge2.txt
import codecs
write = './Building/Buildingedges1_2.txt'
f = codecs.open('./Building/Buildingedges1.txt', mode = 'r', encoding = 'utf-8')
line = f.readline()
list1 = []
while line:
a = line.split()
b = a[1:2]
list1.append(b)
line = f.readline()
f.close()
#写入txt
with open(write, "a") as fw:
for i in range(len(list1)):
fw.writelines(list1[i])
fw.writelines('\n') #分行保存显示
fw.close()
边生成了两个txt文件
2.从txt中读取边放入边的数据类型
// 读取边放入pair
// 将边的顶点分成两个txt文件来读取
std::vector<std::pair<int, int>> edges;
string v1;
string v2;
ifstream edge1("Building/Buildingedges1_1.txt");
ifstream edge2("Building/Buildingedges1_2.txt");
regex pat_regex("[[:digit:]]+")