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

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

问题及代码:

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

1、graph.h的代码(见图基本算法库)
2、graph.cpp的代码(见图基本算法库)

3、main.cpp的代码

#include <stdio.h>
#include <malloc.h>
#include "graph.h"

typedef struct
{
    int data;                   //顶点编号
    int parent;                 //前一个顶点的位置
} QUERE;                        //非环形队列类型

void ShortPath(ALGraph *G,int u,int v)
{
    //输出从顶点u到顶点v的最短逆路径
    ArcNode *p;
    int w,i;
    QUERE qu[MAXV];             //非环形队列
    int front=-1,rear=-1;       //队列的头、尾指针
    int visited[MAXV];
    for (i=0; i<G->n; i++)      //访问标记置初值0
        visited[i]=0;
    rear++;                     //顶点u进队
    qu[rear].data=u;
    qu[rear].parent=-1;
    visited[u]=1;
    while (front!=rear)         //队不空循环
    {
        front++;                //出队顶点w
        w=qu[front].data;
        if (w==v)               //找到v时输出路径之逆并退出
        {
            i=front;            //通过队列输出逆路径
            while (qu[i].parent!=-1)
            {
                printf("%2d ",qu[i].data);
                i=qu[i].parent;
            }
            printf("%2d\n",qu[i].data);
            break;
        }
        p=G->adjlist[w].firstarc;   //找w的第一个邻接点
        while (p!=NULL)
        {
            if (visited[p->adjvex]==0)
            {
                visited[p->adjvex]=1;
                rear++;             //将w的未访问过的邻接点进队
                qu[rear].data=p->adjvex;
                qu[rear].parent=front;
            }
            p=p->nextarc;           //找w的下一个邻接点
        }
    }
}

int Maxdist(ALGraph *G,int v)
{
    ArcNode *p;
    int i,j,k;
    int Qu[MAXV];               //环形队列
    int visited[MAXV];              //访问标记数组
    int front=0,rear=0;             //队列的头、尾指针
    for (i=0; i<G->n; i++)          //初始化访问标志数组
        visited[i]=0;
    rear++;
    Qu[rear]=v;                 //顶点v进队
    visited[v]=1;               //标记v已访问
    while (rear!=front)
    {
        front=(front+1)%MAXV;
        k=Qu[front];                //顶点k出队
        p=G->adjlist[k].firstarc;       //找第一个邻接点
        while (p!=NULL)             //所有未访问过的相邻点进队
        {
            j=p->adjvex;            //邻接点为顶点j
            if (visited[j]==0)          //若j未访问过
            {
                visited[j]=1;
                rear=(rear+1)%MAXV;
                Qu[rear]=j; //进队
            }
            p=p->nextarc;           //找下一个邻接点
        }
    }
    return k;
}

int main()
{
    ALGraph *G;
    int A[9][9]=
    {
        {0,1,1,0,0,0,0,0,0},
        {0,0,0,1,1,0,0,0,0},
        {0,0,0,0,1,1,0,0,0},
        {0,0,0,0,0,0,1,0,0},
        {0,0,0,0,0,1,1,0,0},
        {0,0,0,0,0,0,0,1,0},
        {0,0,0,0,0,0,0,1,1},
        {0,0,0,0,0,0,0,0,1},
        {0,0,0,0,0,0,0,0,0}
    };  //请画出对应的有向图
    ArrayToList(A[0], 9, G);
    ShortPath(G,0,7);
	printf("离顶点0最远的顶点:%d\n",Maxdist(G,0));
    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

第十二周项目一-图的基本算法

/* Copyright (c)2015,烟台大学计算机与控制工程学院 All rights reserved. 文件名称:第十二周项目1 - 图基本算法库.cpp 作    者:李丛丛 完成日期:2015年11月24日 版 本 号:v1.0 问题描述:  定义图的邻接矩阵和邻接表存储结构,实现其基本运算,并完成测试。 要求: 1、头文件graph.h中定义相关的数据结构并声

licongcongv1的博客 405

STM32CubeMX-电机控制2-电机相关配置部分

STM32CubeMX-电机霍尔传感器 写在前面的话:之前一直使用库函数,调程序时总会觉得是配置出现问题,要画一些时间去检查配置程序,所以目前转到了STM32CubeMX。写这些内容一方面是整理记录,因为是刚入门,所以难免出现错误,希望能得到大家指正;另一方面是因为自己一个人调试,走了很多弯路,写下来希望能给相同处境的人一些参考。 步骤一: 电机霍尔传感器接口 我目前使用的是STM32F4,电机的...

niker_co的博客 1万+

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

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

GL906376500的博客 633

从零到一:3D Slicer与MONAI在医学影像中的AI革命

本文探讨了3D Slicer与MONAI在医学影像分析中的革命性应用,展示了如何通过开源工具实现高效的三维影像处理和AI增强分析。结合临床案例,详细介绍了从数据准备到AI分析的全流程,显著提升诊断效率和精度,推动医学影像技术迈向新纪元。

tcp8optimizer的博客 340

告别Root!用Termux+ADB在Android上玩转自动化(保姆级教程)

本文详细介绍了如何在非Root环境下使用Termux和ADB实现Android自动化操作,无需Root权限即可运行自动化脚本。通过Termux搭建Linux终端环境,结合ADB无线调试和Python脚本,实现点击、滑动、截图等自动化功能,适用于定时任务、自动签到等场景。

weixin_42548888的博客 539

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

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

yyx的博客 347

关于Vscode配置Unity环境时的一些报错问题(持续更新)

3.找到设置文件,添加如下代码,用于告诉VSCode)在处理 C# 项目时优先使用 C# 扩展来加载和管理项目,而不是使用 C# Dev Kit 或其他扩展。1.很可能是unity的插件版本问题,打开window > package manager将。2.很可能是项目文件的问题,建议unity打开edit > perfercenes。3.手动重装其他版本的.Net框架(去官网找,多下几个无所谓的)解决:(由于造成问题不一样,所以建议都尝试一次)下载net请求超时(一般都会超时很正常的)

bug制造机 1888

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

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

王旭的博客 619

医学影像处理实战:如何用Python+SimpleITK搞定DICOM/NIfTI重采样(附完整代码)

本文详细介绍了如何使用Python和SimpleITK库实现医学影像(DICOM/NIfTI格式)的智能重采样技术。通过实战代码演示,帮助读者掌握医学图像处理中的关键步骤,包括环境搭建、数据准备、核心算法实现和质量验证,解决医学AI领域中的影像标准化难题。

linux的博客 981

《深入掌握MongoDB数据库》 - 专栏介绍和目录

本专栏系统讲解MongoDB从基础到高级的全栈知识,涵盖安装配置、核心操作、性能优化、安全运维等核心内容。基础部分包括CRUD操作、数据类型、查询语法等入门知识;进阶部分深入索引优化、聚合查询、事务处理等高级特性;核心原理解析存储引擎与数据格式;安全运维则聚焦访问控制、认证机制、审计日志等企业级实践。通过实战案例与最佳实践,帮助开发者全面掌握MongoDB在不同场景下的应用,适合各层次技术人员系统学习。

数据知道的博客 2996

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

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

mlk5739_csdn的博客 790

仿真学习系列(三十八):Sigrity仿真之单端S参数提取

S 参数(Scattering Parameters)是高速信号分析中最基础也最常用的指标,能够全面表征走线、过孔、连接器等互连结构的高频行为。在 Sigrity PowerSI 中,Model Extraction 是最常用的 S 参数提取方式,适用于高速差分线、单端线、过孔、参考平面等各种拓扑结构。 本节将通过示例讲解如何在 PowerSI 中完成一次完整的 S 参数提取流程,包括:对象选择、端口设置、频率范围配置以及结果查看。掌握此方法后,即可对任意高速网络执行阻抗、插损、回损、串扰分析,为进一步的

案例文章,高速信号 838

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

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

sdchenzhe的博客 316

论文阅读:Universal and Transferable Adversarial Attacks on Aligned Language Models. LLM Attacks

因为“即开即用”的大型语言模型能够生成大量令人反感的内容,近期的工作集中在对这些模型进行对齐,以防止不受欢迎的生成。尽管在规避这些措施方面取得了一些成功——即所谓的针对大型语言模型(LLMs)的“越狱”——这些攻击需要大量的人类智慧,并且在实践中很脆弱。自动对抗性提示生成的尝试也取得了有限的成功。在本文中,我们提出了一种简单有效的攻击方法,可以导致对齐的语言模型生成令人反感的行为。

CSPhD-winston的博客 1418

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

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

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

Yangjun19113的博客 660

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

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

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

滕健的博客 245

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

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

/*   *Copyright(c) 2015, 烟台大学计算机学院   *All rights reserved.   *文件名称:利用遍历思想求解图问题(2).cpp   *作    者:周洁   *完成日期:2015年 11月23日   *版 本 号:   *   *问题描述:假设图G采用邻接表存储,设计一个算法输出图G中从顶点u到v的一条简单路径(假设图G中从顶点u到v

zj2558562310的博客 344

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

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

AFencounter的博客 537

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

/*   *Copyright(c) 2015, 烟台大学计算机学院   *All rights reserved.   *文件名称:利用遍历思想求解图问题(7).cpp   *作    者:周洁   *完成日期:2015年 11月23日   *版 本 号:   *   *问题描述:求不带权连通图G中,距离顶点v最远的顶点k  *输入描述:若干数据  *输出描述:最

zj2558562310的博客 367

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

/*   *Copyright(c) 2015, 烟台大学计算机学院   *All rights reserved.   *文件名称:利用遍历思想求解图问题(1).cpp   *作    者:周洁   *完成日期:2015年 11月23日   *版 本 号:   *   *问题描述:假设图G采用邻接表存储,设计一个算法,判断顶点u到v是否有简单路径  *输入描述:若干数据

zj2558562310的博客 414

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

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

cr496352127的博客 553

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

/* Copyright (c)2015,烟台大学计算机与控制工程学院 All rights reserved. 文件名称:第十二周项目.cpp 作 者:纪冬雪 完成日期:2015年12月3日 版 本 号:v1.0 问题描述: 假设图G采用邻接表存储,分别设计实现以下要求的算法,要求用区别于示例中的图进行多次测试,通过观察输出值,掌握相关问题的处理方法。    (3)输

jdxjdxjdx的博客 1136

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

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

滕健的博客 256
上一篇: 第十二周项目四 利用遍历思想求解图问题(5)
下一篇: 第十二周项目五 迷宫问题之图深度优先遍历解法
MF-Bee
博客等级 码龄10年 25粉丝 93原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值