BFS(广度优先算法)——判断无向简单图中任意两点是否连通

2023-11-18

#include<stdio.h>

struct
{
    int city,pre;
} sq[100];


int jz[50][50];
int qh,qe,n,visited[100];



void out(int qe)//输出结果
{
    if(sq[qe].pre==0)
        printf("%d",sq[qe].city);
    else
    {
        out(sq[qe].pre);
        printf("--%d",sq[qe].city);
    }
}
void createGraph(int n)//创建邻接矩阵
{
    int i,j;
    for(i=0; i<n; i++)
        for(j=0; j<n; j++)
            scanf("%d",&jz[i][j]);
}
void search(int p,int q)//查找
{

    int  i;
    qh=0;
    qe=1;
    sq[1].city=p;
    sq[1].pre=0;
    visited[1]=1;
    while(qh!=qe)   //当队不为空
    {
        qh=qh+1;    //结点出队
        for(i=0; i<n; i++)
            if(jz[sq[qh].city][i]==1&&visited[i]==0)  //如果从城市sq[qh].city可以直接到达城市i,且城市i没有访问过
            {
                qe=qe+1;//结点入队
                sq[qe].city=i;
                sq[qe].pre=qh;
                visited[i]=1;
                if(sq[qe].city==q)
                {
                    printf("基本路径为:");
                    out(qe);
                    return ;
                }
            }

    }
    printf("两点不连通!\n");
}

int main()
{
    int i,p,q;
    printf("请输入顶点个数:");
    scanf("%d",&n);
    printf("请输入邻接矩阵:\n");
    createGraph(n);
    for(i=0; i<n; i++)
        visited[i]=0;
    printf("请输入两结点:");
    scanf("%d%d",&p,&q);
    search(p,q);

    return 0;
}
/*
0 1 1 1 0 1 0 0
1 0 0 0 0 1 0 0
1 0 0 1 1 0 0 0
1 0 1 0 0 0 1 0
0 0 1 0 0 0 1 1
1 1 0 0 0 0 0 1
0 0 0 1 1 0 0 1
0 0 0 0 1 1 1 0
*/

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

BFS(广度优先算法)——判断无向简单图中任意两点是否连通 的相关文章

随机推荐

  • 443M衣架遥控arduino代码备档

    byte up 65 0 0 1 1 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 1 1 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1
  • 机器学习笔记GBDT(一):原理

    目录 文章目录 目录 前言 1 GBDT概述 2 GBDT的负梯度拟合 3 GBDT回归算法 1 初始化弱学习器 2 对于迭代轮数t 1 2 T有 3 得到强学习器f x 的表达式 4 GBDT分类算法 4 1 二元GBDT分类算法 4 2
  • Spring Boot自动扫描

    进行Spring Boot和Mybatis进行整合的时候 Spring Boot注解扫描的时候无法扫描到Application类的以外的包下面的注解 如下图 App就是Application类 下图是ProductMapper 类 Mapp
  • 函数的参数(形参与实参)的理解

    函数的参数 实际参数 实参 真实传给函数的参数 叫实参 实参可以是 常量 变量 表达式 函数等 无论实参是何种类型的量 在进行函数调用时 它们必须有确定的值 以便把这些值传送给形参 形式参数 形参 形式参数是指函数名后括号中的变量 因为形式
  • springboot项目响应信息Jackson解析映射,key为null时抛异常解决办法

    当使用 RestController注解时 会把响应信息自动解析成json格式 使用的是Jackson 但是Jackson默认不解析key为null的映射时会抛出异常 需要增加配置 解决 import com fasterxml jacks
  • 执行npm run dev 报【<--- Last few GCs --->内存溢出】

    setx NODE OPTIONS max old space size 10240 cmd 运行 set NODE OPTIONS max old space size 4096 这两个都试过都不行 欲哭无泪 后来听大佬说要下载 npm
  • yum与apt的区别

    一般来说著名的 Linux 系统基本上分两大类 RedHat 系列 Redhat Centos Fedora 等 Debian 系列 Debian Ubuntu 等 对比项 rpm yum dpkg apt 系列 RedHat系 RedHa
  • 什么是加密(Encrypt)?什么是哈希(Hash)?

    加密 Encrypt 加密的概念 假设有一个参数k和一种变换方式E 原始信息 m 通过变换 E 得到一个新的字符串c 公式为 c E m 那么我们就称原始信息 m 为明文 新字符串 c 为密文 将明文转化为密文的过程叫做加密 E 这种变换方
  • Your password has expired. To log in you must change it using a client that supports expired pa

    这个是初始密码问题 有两张方法 我这里用的是命令行的方法 即进入相应mysql目录 再修改密码的方法 首先输入mysqld defaults file F Program Files x86 MySQL my ini skip grant
  • std::bind

    std bind是函数模板 是一个函数 使用std bind可以将可调用对象和参数一起绑定 绑定后的结果使用std function进行保存 并延迟调用到任何我们需要的时候 std bind返回一个基于f的函数对象 其参数被绑定到args上
  • 一个老程序员告诉你:中国程序员为什么要跳槽

    http www jizhuomi com career 318 html
  • Rust学习笔记

    Rust学习笔记 文章目录 Rust学习笔记 1 0 Rust概述 Rust语言的特点 rust适合的领域 1 1 安装 配置开发环境 安装rust linux windows 配置开发环境 1 2 cargo Cargo 是什么 carg
  • 【满分】【华为OD机试真题2023 JAVA&JS】微服务的集成测试

    华为OD机试真题 2023年度机试题库全覆盖 刷题指南点这里 微服务的集成测试 知识点深搜 时间限制 1s 空间限制 256MB 限定语言 不限 题目描述 现在有n个容器服务 服务的启动可能有一定的依赖性 有些服务启动没有依赖 其次服务自身
  • 程序人生:无他,唯心向尔

    无他 唯心向尔 哎 怎么说呢 太长时间没写日记了 手和脑袋都有些生疏 不知道如何下笔 如何结尾 那还是老规矩 随波逐流地跟着beyond的歌写吧 希望这碗 鸡汤 不会给你带来油腻的感觉 今天我 寒夜里看雪飘过 怀着冷却了的心窝飘远方 贵州那
  • 利用QT进行web与本地混合应用开发

    利用QT进行web与本地混合应用开发 T 利用QT进行web与本地混合应用开发 Qt Features for Hybrid Web Native Application Development 原文参见 http www qtsoftwa
  • YOLOv8目标检测PySide6 GUI可视化界面

    课程链接 https edu csdn net course detail 38552 YOLOv8目标检测PySide6 GUI可视化界面效果图如下 YOLOv8目标检测PySide6 GUI可视化界面支持本地图片和视频推理 摄像头实时视
  • PyTorch深度学习实践笔记#8

    嗨 我是error 我来记录PyTorch深度学习实践的笔记了 这会是这个系列的最后一篇文章 个人之前都是使用tensorflow进行深度学习实践 这是第一次学习Pytorch 若笔记有误欢迎提出纠正 课件采用自B站 刘二大人 老师的视频
  • Latex常用数学公式整理——矩阵

    文章目录 1 简单矩阵 2 复杂矩阵 1 简单矩阵 带 的矩阵 begin pmatrix 0 0 0 0 1 0 0 0 0 end pmatrix 0
  • Jaspersoft 环境搭建和入门简单实例

    JasperReport简介 JasperReport是一个强大 灵活的报表生成工具 能够展示丰富的页面内容 并将之转换成PDF HTML 或者XML格式 该库完全由Java写成 可以用于在各种Java应用程序 包括J2EE Web应用程序
  • BFS(广度优先算法)——判断无向简单图中任意两点是否连通

    include