gpt4 book ai didi

c++ - 相邻矩阵

转载 作者:行者123 更新时间:2023-11-28 07:37:23 24 4
gpt4 key购买 nike

我如何结合这两个函数来创建一个允许用户输入顶点数然后输入图形边的程序?

#include <iostream>
using namespace std;

int **malloc2d(int r, int c)
{
int **t = new int*[r];
for(int i = 0; i < r; i++)
t[i] = new int[c];
return t;
}

int main()
{
int i;
int j;
int adj[V][V];
for(i = 0; i < V; i++)
for(j = 0 ; j < V; j++)
adj[i][j] = 0;

for(i = 0; i < V; i++)
adj[i][i]= 1;
while (cin>> i >> j)
{
adj[i][j] = 1;
adj[j][i] = 1;
}

system("pause");
return 0;
}

最佳答案

你可以使用 std::vector<std::vector<bool>> boost::adjacency_matrix , 更简单。

std::size_t v;
std::cin >> v;

std::vector<std::vector<bool>> g(v);
for(auto& elem: g)
elem.resize(v, false);

boost::adjacency_matrix<boost::undirectedS> ug(v);

std::size_t e;
std::cin >> e;

for(std::size_t i = 0; i < e; ++i)
{
std::size_t v1, v2;
std::cin >> v1 >> v2;

g.at(v1).at(v2) = true;
g.at(v2).at(v1) = true;

boost::add_edge(v1, v2, ug);
}

关于c++ - 相邻矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16509982/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com