前言:

本节课讲的是图论的几种遍历方式,若没看图论初步1的赶紧去看

https://www.cnblogs.com/Craker/p/12271090.html

正文:

零、温故而知新

上节课我们学的是图论最最最基础的邻接矩阵和邻接表(哎呀,邻接矩阵那么简单这里还复习个啥啊)

邻接表的“插队”模板还记得吗?温习一下,再打一遍(巨佬石老师提醒您:这都不会打,给我痛扁一顿)

void add(int x,int y,){
   ++tot;
   e[tot].u=x;
   e[tot].v=y;
   e[tot].next=head[x];
   head[x]=tot;
}

别忘了哈

一、深度优先遍历

(1)邻接矩阵(大佬kkksc03:这么弱智的你也写)

没啥好说的,几个要点:

             1、与深搜基本没啥区别(其实深搜是图论的一个分支)

             2、(看看标准的是怎么说的)

 

主要意思:沿一个点搜下去,标记已搜的,若  “无路可走”则返回到上一个点

代码:

void dfs(int v)
  {
     cout<<v<<" ";
     visited[v]=;//标记
     ;j<=n;j++){
         &&g[v][j]== )dfs(j);//搜下去
     }    //由于 我们只是遍历一下所以不用回溯
}

(2)邻接表:(哎呀,大同小异啊)

代码:

void dfs(int v){
    visited[v]=;  //标记
    cout<<v<<" ";
    ;i=e[i].next){
        ){
            dfs(e[i].v);
        }

    }
}

二、广度优先遍历

这是一种很像“层式遍历的东西”,不过本人却不太喜欢

(1)、邻接表(唉,邻接矩阵就不讲了喽大佬kkksc03:强烈支持!)

咋写呢? 队列来了!

何为队列?画一张丑陋的图

贴代码吧:

void bfs(int u){
   ,t=;
   ];
   a[t]=u;//入队
   b[u]=; //标记下一
   while(h<t){ //咦?为啥是小于而不是等于呢?自己想
     h++;   //还是说吧:如果是小于等于的话head岂不大于tail了?
     int v=a[h];
     cout<<v<<" ";  //输出
     ;i=e[i].next){
         int x=e[i].v;
         ){  //不在队吧
             b[x]=;  //标记
             ++t;
             a[t]=x;  //入队
         }
     }
   }
}

某大佬可能会说:这种队列也太土了吧?     本人表示:越土的东西越好用   反正指针我是不学的

写在后面的话:

这是我的第二篇博客(bug一定很多)(如有锅请赶快在评论区指出,谢谢!)

  本人的个人主页(洛谷)https://www.luogu.com.cn/user/236929

    本人的个人主页https://www.cnblogs.com/Craker/

欢迎来访!

谢谢!

本人QQ:2783119105

本人邮箱:yixuazeng66@126.com

如有问题,请在评论区指出或私信我,

谢谢!

(点个赞再走呗)(管理员kkksc03温馨提醒您:刷不到赞莫强求)

图论初步2<蒟蒻专属,大佬勿喷>的更多相关文章

  1. 图论初步<蒟蒻专属文章>

    前言:    图论乃noip之重要知识点,但有点难理解 本人因此吃过不少亏 因为本人实在太弱,所以此篇乃正宗<蒟蒻专属文章> 正文:(本文仅介绍图论中的重点.难点,其余部分略将或不讲) 图 ...

  2. mooc上学习acllib后写的包含背景音乐的小涂鸦板(初入江湖,大佬勿喷)

    #include "acllib.h"ACL_Sound sound1;ACL_Image img;//开始图ACL_Image img1;//涂鸦图ACL_Color c=RED ...

  3. Redis安装教程及安装报错解决方案(大佬勿喷)

    安装环境:CentOS7 Redis版本:redis-6.0.9.tar.gz 依次按照以下顺序执行: 1. [root@localhost ~]# wget https://download.red ...

  4. [New!!!]欢迎大佬光临本蒟蒻的博客(2019.11.27更新)

    更新于2019.12.22 本蒟蒻在博客园安家啦!!! 本蒟蒻的博客园主页 为更好管理博客,本蒟蒻从今天开始,正式转入博客园. 因为一些原因,我的CSDN博客将彻底不会使用!!!(带来不便,敬请谅解) ...

  5. 一个蒟蒻对FFT的理解(蒟蒻也能看懂的FFT)

    建议同学们先自学一下"复数(虚数)"的性质.运算等知识,不然看这篇文章有很大概率看不懂. 前言 作为一个典型的蒟蒻,别人的博客都看不懂,只好自己写一篇了. 膜拜机房大佬 HY 一. ...

  6. 一个GD初二蒟蒻的自我介绍

    emmm……今天博客第一天使用呢,好激动啊…… 这里是一个来自GD的初二蒟蒻+无脑OIER,什么都不会 NOIP2017普及组:260压线1=还是看RP过的…… GDKOI2018:120暴力大法吼啊 ...

  7. 蒟蒻LQL的博客

    这里是蒟蒻LQL的博客!!! 一枚水的不能再水的弱校ACMer···· 可能会在这写一些题解或者别的什么乱七八糟的··· 可能大概没什么人看,就当错题本好了o(* ̄▽ ̄*)ブ 因为太弱了难免有错误!发 ...

  8. 算法描述》LCA两三事(蒟蒻向)

    LCA是图论中常用的解决树形结构子问题的工具,这一问题一般需要用一个简短的子函数直接解决,但是这对于广大蒟蒻们仍然是一个不小的问题. LCA是指在树形结构中两点的最近公共祖先,对于这个问题,直接向上找 ...

  9. 蒟蒻的HNOI2017滚粗记

    蒟蒻的第一次省选,然而并没有RP爆发... Day 1: 8:00开考,(然而密码错误是什么鬼).跌跌撞撞,8:40终于拿到纸质试题. { T1:作为一名没有学过Splay的蒟蒻,考场上真的被出题人感 ...

随机推荐

  1. mysql中date与datetime的区别

    date类型可用于需要一个日期值而不需要时间部分时.MySQL 以 'YYYY-MM-DD' 格式检索与显示date值.支持的范围是 '1000-01-01' 到'9999-12-31'. datet ...

  2. 中国社交电商最新展望,S-KOL-C正突围而出

    编辑 | 韩星 出品 | 于见(mpyujian) 通信技术.移动互联网的快速发展正加速国内电商平台的深度变革. 在这场以"社交"和"下沉市场"为关键词的电商之 ...

  3. 高级T-SQL进阶系列 (一)【中篇】:使用 CROSS JOIN 介绍高级T-SQL

    [译注:此文为翻译,由于本人水平所限,疏漏在所难免,欢迎探讨指正] 原文连接:传送门. 当一个CROSS JOIN 表现得如同一个INNER JOIN 在上一章节我提到当你使用一个CROSS JOIN ...

  4. idna与utf-8编码漏洞

    来自Black hat 2019 原理什么是IDN?国际化域名(Internationalized Domain Name,IDN)又名特殊字符域名,是指部分或完全使用特殊文字或字母组成的互联网域名, ...

  5. where、having区别

    where  <<   group by   <<   having where筛选是在分组之前筛选,筛选完之后再group by having是分组之后再筛选,筛选完之前先g ...

  6. nginx的preaccess 阶段的limit_req模块与limit_conn模块

    limit_conn 模块限制并发连接数 [root@python vhast]# vim limit_conn.conf limit_conn_zone $binary_remote_addr zo ...

  7. if,while,for循环

    目录 if条件 while循环 for循环 拓展知识点 if条件 if 条件: code elif 条件: code else: code # 三元运算符 x = 10 y = 20 print(y ...

  8. 1-使用React的方式

    认识 React React是一个用于构建用户界面的 JAVASCRIPT 库.(JQuery也是) React主要用于构建UI,很多人认为 React 是 MVC 中的 V(视图).mvvm Rea ...

  9. VM安装linux操作系统详细教程

    1.首先我们新建一个虚拟机,先不安装操作系统,稍后再对其安装Linux系统. 新建虚拟机步骤如下: 打开VMware软件,菜单栏点击“文件(F)”–>选择“新建虚拟机(N)”,如下图1,(或者直 ...

  10. Windows 10 20H1版名称被定为Windows 10 Version 2004版以示区分

    导读 我们知道Windows 10 20H1 版目前的开发工作已经接近完成,当前微软主要通过新版本来修复部分已知的问题. 而名称上面按照以往规律推算应该是 Windows 10 Version 200 ...