问题:
把一个文件中的数据,读取到一个二维数组中,这个文件中的数据如下:
1 2
1 3
1 4
4 5
说明这是一个无向图,顶点1连接顶点2,顶点1连接顶点3…
将这些数据以无向图邻接矩阵的形式读取并存储,并用深度优先搜索遍历所有顶点并输出。(从给出的数据的第一行的第一各顶点开始进行遍历)
源程序:
#include<iostream>
#include<fstream>
#include<list>
using namespace std;
list<int>lst;
list<int>::iterator p=lst.begin();
ifstream stream("input.txt");
#define MAX_VERTEX_NUM 20 /* 最大顶点个数 */
struct arc
{
int adj; /* 顶点关系类型。对无权图,用1(是)或0(否)表示相邻否; */
};
struct MGraph
{
int vexs[MAX_VERTEX_NUM]; /* 顶点向量 */
arc arcs[MAX_VERTEX_NUM][MAX_VERTEX_NUM];; /* 邻接矩阵 */
int vexnum,arcnum; /* 图的当前顶点数和弧数 */
};
bool visited[MAX_VERTEX_NUM]; /* 访问标志数组(全局量) */
void dfs (MGraph &G,int i)