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

第十二周项目4——利用遍历思想求解图问题(1) 问题: /* * Copyright (c)2016,烟台大学计算机与控制工程学院 * All rights reserved. * 文件名称:项目4.cpp * 作 者:陈晨 * 完成日期:2016年11月17日 * 版 本 号:v1.0 *问题描述:假设图G采用邻接表存储,分别设计实现以下要求的算法,要求用区别于示 阅读详情

问题及代码:

/*     
*烟台大学计算机与控制工程学院      
*作    者:孙丽玮    
*完成日期:2016年11月17日  
*问题描述:假设图G采用邻接表存储,分别设计实现以下要求的算法,要求用区别于示例中的图进行多次测试,通过观察输出值,掌握相关问题的处理方法。 
        (1)设计一个算法,判断顶点u到v是否有简单路径 
        (2)设计一个算法输出图G中从顶点u到v的一条简单路径(设计测试图时,保证图G中从顶点u到v至少有一条简单路径)。 
        (3)输出从顶点u到v的所有简单路径。 
        (4)输出图G中从顶点u到v的长度为s的所有简单路径。 
        (5)求图中通过某顶点k的所有简单回路(若存在)
*/ 
1、graph.h的代码(见图基本算法库)
2、graph.cpp的代码(见图基本算法库)

3、main.cpp的代码

#include <stdio.h>
#include <malloc.h>
#include "graph.h"
int visited[MAXV];     //定义存放节点的访问标志的全局数组

void ExistPath(ALGraph *G,int u,int v, bool &has)
{
    int w;
    ArcNode *p;
    visited[u]=1;
    if(u==v)
    {
        has=true;
        return;
    }
    p=G->adjlist[u].firstarc;
    while (p!=NULL)
    {
        w=p->adjvex;
        if (visited[w]==0)
            ExistPath(G,w,v,has);
        p=p->nextarc;
    }
}

void HasPath(ALGraph *G,int u,int v)
{
    int i;
    bool flag = false;
    for (i=0; i<G->n; i++)
        visited[i]=0; //访问标志数组初始化
    ExistPath(G,u,v,flag);
    printf(" 从 %d 到 %d ", u, v);
    if(flag)
        printf("有简单路径\n");
    else
        printf("无简单路径\n");
}

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);
    HasPath(G, 1, 0);
    HasPath(G, 3, 4);
	APath(G,1,0);
    APath(G,4,1);
    return 0;
}

运行结果:


总结:

判断顶点u到v是否有简单路径并输出。

第十二周--利用遍历思想求解图问题 / 作 者:孙子策 完成日期:2016.11.17 问题描述: 假设图G采用邻接表存储,分别设计实现以下要求的算法,要求用区别于示例中的图进行多次测试,通过观察输出值,掌握相关问题的处理方法。    (1)设计一个算法,判断顶点u到v是否有简单路径    (2)设计一个算法输出图G中从顶点u到v的一条简单路径(设计测试图时,保证图G中从顶点u到v至少有一条简 阅读详情

相关推荐

第十二周项目四----利用遍历思想求解图问题之7最远顶点

/*烟台大学计算机与控制工程学院 时间2015年12月14日 作者:孙潇 问题描述:假设图G采用邻接表存储,分别设计实现以下要求的算法,要求用区别于示例中的图进行多次测试,通过观察输出值,掌握相关问题的处理方法。  求不带权连通图G中,距离顶点v最远的顶点k 输入描述:无 输出描述:若干数据 */ #include #include #include "g

Serena2580的博客 1019

LeetCode 797. 所有可能的路径

给你一个有 n 个节点的 有向无环图(DAG),请你找出所有从节点 0 到节点 n-1 的路径并输出(不要求按特定顺序) 二维数组的第 i 个数组中的单元都表示有向图中 i 号节点所能到达的下一些节点,空就是没有下一个结点了。 译者注:有向图是有方向的,即规定了 a→b 你就不能从 b→a 。 class Solution { public: bool visited[20]; void init(){ for(int i=0;i<20;i++)

Blocking The Sky 209

输出有向图中顶点u到顶点v的所有简单路径

输出有向图中顶点u到顶点v的所有简单路径 利用图的广度优先遍历或深度优先遍历来解决

【数据结构】采用邻接表存储结构,编写一个判别无向图中任意给定的两个结点之间是否存在一条长度为k的简单路径的算法。

采用邻接表存储结构,编写一个判别无向图中任意给定的两个结点之间是否存在一条长度为k的简单路径的算法。 假设图用邻接表表示,设计一个算法,输出从顶点vi 到 vj 的所有简单路径。

放纵小开爱的博客 5948

输出有向图G中从顶点u到v的长度为s的所有简单路径

输出有向图G中从顶点u到v的长度为s的所有简单路径 输出有向图G中从顶点u到v的长度为s的所有简单路径 输出有向图G中从顶点u到v的长度为s的所有简单路径

找vi到vj的路径

找vi到vj的路径~~~图的

【无标题】

求解简单路径

weixin_44342948的博客 357

GoldenDB 兼容模式冲突场景解析:MySQL 连接模式 vs Oracle 语法兼容

GoldenDB 兼容模式冲突场景解析:MySQL 连接模式 vs Oracle 语法兼容

weixin_45207751的博客 2252

第12周 项目4-判断顶点u到v是否有简单路径

问题及描述: #ifndef GRAPH_H_INCLUDED #define GRAPH_H_INCLUDED #define MAXV 100 //最大顶点个数 #define INF 32767 //INF表示∞ typedef int InfoType; //以下定义邻接矩阵类型 typedef struct

a1034311243的博客 1324

结构光三维重建(一)条纹结构光三维重建

在近景三维重建领域,结构光技术可以说是应用最广泛的,尤其在工业领域。该技术目前具有高精度和无视弱纹理等优点,但复杂的室外环境还是会对该技术造成一定程度的干扰。目前用的比较多的结构光分别两大类:线结构光以及条纹结构光。接下来我先来简单介绍一下条纹结构光三维重建,事实上,条纹结构光的原理与双目立体匹配是非常相似的。...

AAAA202012的博客 1万+

【CV论文精读】【协同感知综述】Collaborative Perception for Autonomous Driving :Current Status and Future Trend

感知是自动驾驶系统的关键模块之一,近年来取得了很大进展。然而,单个车辆的有限能力导致感知性能提高的瓶颈。为了突破个体感知的局限,协作感知被提出,它使车辆能够共享信息来感知视线和视野之外的环境。本文综述了有前途的协作感知技术的相关工作,包括介绍了基本概念,概括了协作模式,总结了协作感知的关键要素和应用。最后,我们讨论了这一研究领域面临的挑战和问题,并给出了一些潜在的进一步方向。

weixin_44184852的博客 4690

图及其相关算法

主要内容 图的逻辑结构 图的存储结构及实现 图的连通性 最小生成树 最短路径 AOV网与拓扑排序 AOE网与关键路径 图的逻辑结构 图的定义 图是由顶点的有穷非空集合和顶点之间边的集合组成,通常表示为: G=(V,E) 其中:G表示一个图,V是图G中顶点的集合,E是图G中顶点之间边的集合。 在线性表中,元素个数可以为零,称为空表; 在树中,结点个数可以为零,称为空树; 在图中,顶点个数不能为零,但...

weixin_45156425的博客 975

VTK学习(入门级教程,包括安装和使用)~持续更新中

说明:研究QT+VTK有段时间了,准备把学到的东西分享给大家,这篇博客以VS+QT+VTK为主进行展开学习的。

HXX904的博客 4757

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

(6). /* Copyright (c)2015,烟台大学计算机与控制工程学院 All rights reserved. 文件名称:第十二周项目4 - 利用遍历思想求解图问题.cpp 作 者:高露 完成日期:2015年11月30日 版 本 号:v1.0 问题描述: 假设图G采用邻接表存储,分别设计实现以下要求的算法,要求用区别于示例中的图进行多次测试,通过观察输出值,掌

GL906376500的博客 633

解决ADS1.2报错Cannot obtain license

报错如下 将licenses文件下的license内容进行修改: 修改为如下内容即可。 # # Generated on 2021-dec-1 by licwizard # PACKAGE ads armlmd 1.200 E32F0DE5161D COMPONENTS="armasm compiler bats armulate axd adwu fromelf armlink codewarrior armsd" INCREMENT ads armlmd 1.200 permanent uncounte

qq_46110320的博客 3462

Win10系统怎么打开Microsoft帐户?Win10系统打开Microsoft的帐户方法

也被加入了越来越多的功能,我们在使用电脑的时候,很对用户会打开Micorsofy账户功能,搜索个人邮件信息,照片等等,还能将个人的数据备份到账户内,那要怎么打开账户呢,下面带给大家方法。以上就是小编给大家整理的win10系统打开Microsoft帐户的具体操作方法,方法简单易懂,有需要的朋友可以看一看,希望这篇教程对大家有所帮助。5、最后我们将“Microsoft帐户”选项下方的开关按钮向右滑动将其打开,如下图所示,这样就成功打开wMicrosoft帐户功能了。我们在窗口左侧点击“设置”选项即可。

2401_88800025的博客 278

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

问题:/* Copyright (c)2016,烟台大学计算机与控制工程学院 All rights reserved. 文件名称:第十二周项目4 - 利用遍历思想求解图问题(1-5).cpp 作 者:杨雅鑫 完成日期:2016年11月16日 版 本 号:v1.0 问题描述: 假设图G采用邻接表存储,分别设计实现以下要求的算法,要求用区别于示例中的图进行多次测试,通过观察输出

yyx的博客 347

【网络基础2】路由器的 “两扇门”:二层接口和三层接口到底有啥不一样?

家里的路由器背后总有几个网线接口,有的标着 “LAN”,有的标着 “WAN”;公司机房的路由器上,接口更是五花八门,有的插着网线,有的连着光纤,旁边还贴着 “GE0/0/1”“Eth-Trunk1” 这样的标签。你可能会想:不就是插网线的地方吗?有啥区别?其实,这些接口分 “二层接口” 和 “三层接口”,它们的作用差得远了 —— 就像你家的门,有的是 “小区内的单元门”(只通小区内部),有的是 “小区的大门”(能通往外面的世界)。接下来,咱们用大白话 + 生活例子,一点点把这两种接口讲透。

jundao1997的专栏 565

第十二周 项目4 利用遍历思想求解图问题(输出简单路径 )

/* * 烟台大学计算机与控制工程学院 *文件名称:mian.cpp *作 者:王旭 *完成日期:2015年11月19日 *版 本 号:v1.0 * *问题描述: 假设图G采用邻接表存储,设计一个算法输出图G中从 顶点u到v的一条简单路径(

王旭的博客 619

Fiori Elements 的 Adapting the UI: Analytical List Page 全解析与实战

摘要:本文详细介绍了如何通过SAP Fiori elements的UI Adaptation功能对Analytical List Page(ALP)进行细粒度适配。重点讲解了页头过滤区、图表区域、表格区域等关键组件的可配置属性,包括过滤区折叠/固定、图表类型限制、表格滚动阈值等实用功能。文章强调这些适配均可通过可视化工具完成,无需修改业务代码,并提供了典型场景的实践清单。适用于SAP Fiori elements for OData V2项目,建议配合SAP Fiori tools的Adaptation E

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 436

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

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

copyright (c) 2016,烟台大学计算机学院   All rights reserved.   文件名称:1.cpp   作者:孟令康  完成日期:2016年9月12日   版本号:v1.0   问题描述: 假设图G采用邻接表存储,分别设计实现以下要求的算法,要求用区别于示例中的图进行多次测试,通过观察输出值,掌握相关问题的处理方法。           (1)设计一个算

mlk5739_csdn的博客 790

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

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

问题及代码: /* * Copyright (c)2016,烟台大学计算机与控制工程学院 * All rights reserved. * 文件名称:项目4.cpp * 作 者:陈哲 * 完成日期:2016年11月24日 * 版 本 号:v1.0 *问题描述:假设图G采用邻接表存储,分别设计实现以下要求的算

sdchenzhe的博客 316

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

第十二周--利用遍历思想求解图问题(DFS)

/* *Copyright (c) 2015 烟台大学计算机与控制工程学院 *All right reserved. *标题:数据结构实践——利用遍历思想求解图问题(DFS) *作者:杨珺 *date:2015年11月16日 *版本:V1.0.1 *操作系统:XP *运行环境:VC6.0 *问题描述:假设图G采用邻接表存储,分别设计实现以下要求的算法,要求用区别

Yangjun19113的博客 660

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

/* Copyright (c)2016,烟台大学计算机与控制工程学院 All rights reserved. 文件名称:第十二周项目3 - 图遍历算法实现 (2)广度优先遍历(BFS).cpp 作 者:滕健 完成日期:2016年11月17日 问题描述: 假设图G采用邻接表存储,分别设计实现以下要求的算法,要求用区别于示例中的图进行多次测试,通过观察输出值,掌握相关问题的

滕健的博客 245

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

问题及代码: /* *烟台大学计算机与控制工程学院 *作 者:孙丽玮 *完成日期:2016年11月17日 *问题描述:假设图G采用邻接表存储,分别设计实现以下要求的算法,要求用区别于示例中的图进行多次测试,通过观察输出值,掌握相关问题的处理方法。    (6)求不带权连通图G中从顶点u到顶点v的一条最短路径。    (7)求不带权连

AFencounter的博客 321
上一篇: 第十二周项目三 图遍历算法实现——广度优先(BFS)遍历
下一篇: 第十二周项目四 利用遍历思想求解图问题(3、4)
MF-Bee
博客等级 码龄10年 25粉丝 93原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值