十二周 项目4- 利用遍历思想求解图问题

原创 2015年11月20日 08:23:27
/* 
文件名称:main.cpp

作者       :王超

完成日期:2015年11月20日

问题描述输出所有路径 
:
*/


 

#include <stdio.h>
#include <malloc.h>
#include "graph.h"
int visited[MAXV];     //定义存放节点的访问标志的全局数组
void FindPaths(ALGraph *G,int u,int v,int path[],int d)
//d是到当前为止已走过的路径长度,调用时初值为-1
{
    int w,i;
    ArcNode *p;
    visited[u]=1;
    d++;            //路径长度增1
    path[d]=u;              //将当前顶点添加到路径中
    if (u==v && d>1)            //输出一条路径
    {
        printf("  ");
        for (i=0; i<=d; i++)
            printf("%d ",path[i]);
        printf("\n");
    }
    p=G->adjlist[u].firstarc; //p指向u的第一条边
    while(p!=NULL)
    {
        w=p->adjvex;     //w为u的邻接顶点
        if (visited[w]==0)      //若顶点未标记访问,则递归访问之
            FindPaths(G,w,v,path,d);
        p=p->nextarc; //找u的下一个邻接顶点
    }
    visited[u]=0;   //恢复环境
}


void DispPaths(ALGraph *G,int u,int v)
{
    int i;
    int path[MAXV];
    for (i=0; i<G->n; i++)
        visited[i]=0; //访问标志数组初始化
    printf("从%d到%d的所有路径:\n",u,v);
    FindPaths(G,u,v,path,-1);
    printf("\n");
}

int main()
{
    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);
    DispPaths(G, 1, 4);
    return 0;
}


十二周 项目四 利用遍历思想求解图问题(5)

/* *Copyright (c)2015, 烟台大学计算机与控制工程学院 *All rights reserved. *文件名称:Graph.cpp *作 者:苏凯祺 *完成日期:2...

十二周 项目四 利用遍历思想求解图问题(2)

/* *Copyright (c)2015, 烟台大学计算机与控制工程学院 *All rights reserved. *文件名称:Graph.cpp *作 者:苏凯祺 *完成日期:2...

十二周 项目四 利用便利思想求解图问题(1)

/* *Copyright (c)2015, 烟台大学计算机与控制工程学院 *All rights reserved. *文件名称:Graph.cpp *作 者:苏凯祺 *完成日期:2014年1...

第十一周 项目4(1) - 利用遍历思想求解图问题

1、是否有简单路径?  问题:假设图G采用邻接表存储,设计一个算法,判断顶点u到v是否有简单路径。 #include #include #include "graph.h" int...

第十一周 项目4 — 利用遍历思想求解图问题(7)

/* * Copyright (c) 2017,烟台大学计算机学院 * All right reserved. ...

第十二周项目4 ——利用遍历思想求解图问题(1)-是否有简单路径

/* *Copyright (c) 2015,烟台大学计算机学院 *All right reserved. *文件名称:test.cpp *作者:王雪洁 *完成日期:2015年11月27日 *版本号:...
  • wwwxxjj
  • wwwxxjj
  • 2015年11月27日 09:09
  • 157

【第十一周】项目4 - 利用遍历思想求解图问题

*Copyright (c)2017,烟台大学计算机与控制工程学院 *All rights reserved. *文...

第十一周项目4(2)-利用遍历思想求解图问题

graph.h#ifndef GRAPH_H_INCLUDED #define GRAPH_H_INCLUDED #define MAXV 100 //最大顶点个数 #...

第十二周项目4—利用遍历思想求解图问题

问题及代码 /* Copyright (c)2016,烟台大学计算机与控制工程学院 All rights reserved. 文件名称:第十二周项目4 - 利用遍历思想求解图问题.cpp 作...
  • DSCCX
  • DSCCX
  • 2016年11月17日 10:37
  • 116

第十一周 【项目4 - 利用遍历思想求解图问题】

/* * Copyright(c) 2017,烟台大学计算机学院 * All rights reserved. * 作 ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:十二周 项目4- 利用遍历思想求解图问题
举报原因:
原因补充:

(最多只允许输入30个字)