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

原创 2015年11月20日 08:38:40
/* 
Copyright(c)2015,烟台大学计算机学院 
All rights reserved. 
文件名称:test.cpp 
作者:杜佳丽 
完成日期:2015年11月20日 
问题描述:设计一个算法输出图G中从顶点u到v的一条简单路径(设计测试图时,保证图G中从顶点u到v至少有一条简单路径)。
*/ 

#include <stdio.h>
#include <malloc.h>
#include "graph.h"
int visited[MAXV];     //定义存放节点的访问标志的全局数组
void FindAPath(ALGraph *G,int u,int v,int path[],int d)
{
    //d表示path中的路径长度,初始为-1
    int w,i;
    ArcNode *p;
    visited[u]=1;
    d++;
    path[d]=u;  //路径长度d增1,顶点u加入到路径中
    if (u==v)   //找到一条路径后输出并返回
    {
        printf("一条简单路径为:");
        for (i=0; i<=d; i++)
            printf("%d ",path[i]);
        printf("\n");
        return;         //找到一条路径后返回
    }
    p=G->adjlist[u].firstarc;  //p指向顶点u的第一个相邻点
    while (p!=NULL)
    {
        w=p->adjvex;    //相邻点的编号为w
        if (visited[w]==0)
            FindAPath(G,w,v,path,d);
        p=p->nextarc;   //p指向顶点u的下一个相邻点
    }
}

void APath(ALGraph *G,int u,int v)
{
    int i;
    int path[MAXV];
    for (i=0; i<G->n; i++)
        visited[i]=0; //访问标志数组初始化
    FindAPath(G,u,v,path,-1);  //d初值为-1,调用时d++,即变成了0
}

int main()
{

    ALGraph *G;
    int A[5][5]=
    {
        {0,0,0,0,0},
        {0,0,1,0,0},
        {0,0,0,1,1},
        {0,0,0,0,0},
        {1,0,0,1,0},
    };  //请画出对应的有向图
    ArrayToList(A[0], 5, G);
    APath(G, 1, 0);
    APath(G, 4, 1);
    return 0;
}


运行结果:

数据结构例程——用二叉树遍历思想解决问题

本文是数据结构基础系列(6):树和二叉树中第10课时二叉树的遍历的例程。【利用二叉树遍历思想解决问题】(请利用二叉树算法库)   假设二叉树采用二叉链存储结构存储,分别实现以下算法,并在程序中完成测...
  • sxhelijian
  • sxhelijian
  • 2015年10月19日 21:23
  • 2464

数据结构实践——迷宫问题之图深度优先遍历解法

本文是针对[数据结构基础系列(7):图]的实践项目。【项目 - 迷宫问题之图深度优先遍历解法】   设计一个程序,采用深度优先遍历算法的思路,解决迷宫问题。   (1)建立迷宫对应的图数据结构...
  • sxhelijian
  • sxhelijian
  • 2015年11月08日 15:36
  • 5874

关于二叉树的几种遍历方法

先说说二叉树的存储结构,跟很多其它模型一样,也有顺序和链式两种方式。前者虽然使用简单,但是存在浪费空间的问题,举个例子,下图的二叉树,用顺序的方式存储(0表示空,没有子树)是: 二叉树就是每个结点最...
  • pony_maggie
  • pony_maggie
  • 2014年08月05日 20:57
  • 189863

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

问题及代码: /* *烟台大学计算机与控制工程学院 *作 者:孙丽玮 *完成日期:2016年11月17日 *问题描述:假设图G采用邻接表存储,分别设计实现以下...
  • AFencounter
  • AFencounter
  • 2016年11月17日 11:24
  • 94

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

问题及代码: /* * Copyright (c)2016,烟台大学计算机与控制工程学院 * All rights reserved. * 文件名称:项目4.cp...
  • sdchenzhe
  • sdchenzhe
  • 2016年11月24日 11:23
  • 119

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

问题及代码: 具体问题如下: /*输出简单路径 问题:假设图G采用邻接表存储,设计一个算法输出图G中从顶点u到v的一条简单路径(假设图G中从顶点u到v至少有一条简单路径)*/具体代码如下: #...
  • ku258
  • ku258
  • 2015年12月17日 17:09
  • 193

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

/* * Copyright (c) 2016, 烟台大学计算机与控制工程学院 * All rights reserved. * 文件名称:Cube007.cpp * 作 者:李...
  • JYHliling
  • JYHliling
  • 2016年11月18日 10:40
  • 127

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

问题: /* * Copyright (c)2016,烟台大学计算机与控制工程学院 * All rights reserved. * 文件名称:项目4.cpp ...
  • chenchen0808
  • chenchen0808
  • 2016年11月17日 10:51
  • 123

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

Copyright (c) 2015,烟台大学计算机学院 All rights reserved, 文件名称:idea.cpp 作者:王阳 完成日期:2015年12月11日...
  • WangYangW
  • WangYangW
  • 2015年12月11日 08:12
  • 176

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

/* Copyright (c)2015,烟台大学计算机与控制工程学院 All rights reserved. 文件名称:第十二周项目4 - 利用遍历思想求解图问题.cpp 作 者:高露 完成...
  • GL906376500
  • GL906376500
  • 2015年11月30日 16:43
  • 245
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:第十二周 项目四(2) 利用遍历思想求解图问题
举报原因:
原因补充:

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