二、编译并链接程序;
三、运行程序,结果如下图:
实验○
2 源程序
一、输入如下所示程序;
//文件名:exp8-2.cpp #include
extern void MatToList1(MGraph, ALGraph *&); extern void DispAdj1(ALGraph *G); extern void DFS(ALGraph *G,int v); extern void DFS1(ALGraph *G,int v); extern void DFS2(ALGraph *G,int v);
extern void BFS(ALGraph *G,int v);
int main() {
int i,j;
//文件名:algo8-2.cpp #include
int visited[MAXV];
void DFS(ALGraph *G,int v) //递归深度优先遍历 {
ArcNode *p; visited[v] = 1;
printf(\
p = G->adjlist[v].firstarc; while(p!=NULL) {
if(visited[p->adjvex]==0)
top++;
St[top] = G->adjlist[w].firstarc;
break;
}
p = p->nextarc;
}
} printf(\ }
void BFS(ALGraph *G,int v) {
ArcNode *p;
int queue[MAXV],front = 0,rear = 0; int visited[MAXV]; int w,i;
for(i=0;i
void MatToList1(MGraph g, ALGraph *&G)
{
int i,j;
ArcNode *p;
G = (ALGraph*)malloc(sizeof(ALGraph));
for(i=0; i G->adjlist[i].firstarc = NULL; for(i=0; i for(j=g.n-1; j>=0; j--) if(g.edges[i][j]!=0 && g.edges[i][j]!=INF) { p = (ArcNode*)malloc(sizeof(ArcNode)); p->adjvex = j; p->info = g.edges[i][j]; p->nextarc = G->adjlist[i].firstarc; G->adjlist[i].firstarc = p; } 二、对程序进行编译链接; 三、运行该程序,结果如图