我正在进行一项任务,我必须为无向图实现dijkstra算法。我必须从文本文件中读取图形。我已经实现了以下功能:
graph :: graph()
{
ifstream fe("adj.txt");
for(int i=0;i<SIZE;i++)
{
for(int j=0;j<SIZE;j++)
mat[i][j]=0;
}
string str;
while(getline(fe,str))
{
istringstream ss(str);
int node,i;
ss>>node;
while(ss>>i)
mat[node-1][i-1]=1;
}
}
mat是2-d数组,size是节点数。
文件位于邻接列表中。行中的第一个数字表示节点,之后的数字表示节点附近的节点。
mat是2-d数组,size是节点数。 它的功能适用于少量顶点,但随着我增加尺寸(200),并尝试打印图形(以矩阵形式),打印不会从第一个节点开始(在我的情况下,它从第116个顶点)。 我怎样才能使它适用于大尺寸图形?
编辑:我使用简单的双循环打印图表。
void graph:: printgraph()
{
for(int i=0;i<SIZE;i++)
{
for(int j=0;j<SIZE;j++)
{
cout<<mat[i][j]<<" ";
}
cout<<endl;
}
}