第十二周 项目三(1) 图遍历算法实现

来源:互联网 发布:flash制作软件for mac 编辑:程序博客网 时间:2024/05/17 08:20
<pre class="cpp" name="code">/*Copyright(c)2015,烟台大学计算机学院All rights reserved.文件名称:test.cpp作者:杜佳丽完成日期:2015年11月16日问题描述:深度优先遍历——DFS*/

#include <stdio.h>#include <malloc.h>#include "graph.h"int visited[MAXV];void DFS(ALGraph *G, int v){    ArcNode *p;    int w;    visited[v]=1;    printf("%d ", v);    p=G->adjlist[v].firstarc;    while (p!=NULL)    {        w=p->adjvex;        if (visited[w]==0)            DFS(G,w);        p=p->nextarc;    }}int main(){    int i;    ALGraph *G;    int A[5][5]=    {        {0,1,0,1,0},        {1,0,1,0,0},        {0,1,0,1,1},        {1,0,1,0,1},        {0,0,1,1,0}    };    ArrayToList(A[0], 5, G);    for(i=0; i<MAXV; i++) visited[i]=0;    printf(" 由2开始深度遍历:");    DFS(G, 2);    printf("\n");    for(i=0; i<MAXV; i++) visited[i]=0;    printf(" 由0开始深度遍历:");    DFS(G, 0);    printf("\n");    return 0;}

运行结果:


0 0
原创粉丝点击