积极答复者
建立邻接矩阵的问题(无向,有权值)

问题
-
要建立一个邻邦接矩阵,要求无向,而且有权值,我是这样做的:
for(int r=0; r<VEX_NUM; r++)
for(int c; c<VEX_NUM; c++)
{
if(r == c)
G.weight[r][c] = 0;//权值赋为0
else//这要根据实际情况而定
{
//search() 调用查找函数在E数组中查找
//{
//if() 如果连通,则赋相应的权值
// 应为无向量图的特点是对称,所以有
// G.weight[r][c] =
// G.weight[c][r] =
//else 如果不连通,则赋值为一个很大的值,在程序中定义为常量
// G.weight[r][c] = Infinity;
// G.weight[c][r] = Infinity;
//}
}}
这里要定义二个数组,要从Graph.txt文件中创建,Graph.txt是这样定义的:
directed = false
V = city1,city2,city3,city4,city5,city6
E = (city1, city5, 8), (city1, city2, 6), (city5, city4, 12), (city5, city2, 3),(city2, city3, 4), (city3,city4, 7), (city4, city6, 12)这是无向图G(V,E),要用vector建立二个数组,一个是vector<char>V(VEX_NUM);要包括所有的城市名.
另一个是包括起点城市名、终点城市名和权值的数组。
我现在就是卡在建立这二个数组上了。不知道要用什么方法把有用的值提取出来,请高手多指点。
xiao
答案
-
请问你是想问怎么可以方便的进行文件读去么?
你可以用
std::istream infile;
然后
for(std::getline(infile, current_line); !infile.eof(); std::getline(infile, current_line))
{}
在循环中通过std::string进行解析。比如遇到V然后分别读去每个,分割的字符串。
或者使用boost::tokenizer< boost::char_separator<char> >来进行解析
麻烦把正确答案设为解答。- 已标记为答案 wh_xiao 2011年4月9日 5:56
全部回复
-
请问你是想问怎么可以方便的进行文件读去么?
你可以用
std::istream infile;
然后
for(std::getline(infile, current_line); !infile.eof(); std::getline(infile, current_line))
{}
在循环中通过std::string进行解析。比如遇到V然后分别读去每个,分割的字符串。
或者使用boost::tokenizer< boost::char_separator<char> >来进行解析
麻烦把正确答案设为解答。- 已标记为答案 wh_xiao 2011年4月9日 5:56