L5 图论初步

  • 图的概念
  • 图的存储
  • 图的遍历
  • 图论问题

图论简介——图是什么

  1. 图:表示物与物之间关系的方法
  2. 图论:以图为研究对象,研究顶点和边组成的图形的数学理论和方法
  3. 一般是 n 个点,m 条边
  4. 边的方向:
    · 无向图:边双向连通(一种特殊的有向图,双向)
    · 有向图:单向通行
  5. 边权
  6. 度:与此点相连边的数量
    · 入度:流入此点的边的数量
    · 出度:流出此点的边的数量
    · 出、入度一般都用于有向图
  7. 完全图、稠密图、稀疏图

图的存储

邻接矩阵

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 邻接矩阵:用二维数组的方式存储一个图
  • 存储规则:若 a—>b,则 map[ a ][ b ] = ( a 到 b 的距离 或1 ),无法访问值为 -1 或 正无穷
  • a—>a = 0
  • 无向图:map[ a ][ b ] = map[ b ][ a ]
  • 空间复杂度 O(n2) 遍历一个点的时间复杂度 O(n)
  • 由于邻接矩阵时空复杂度较大,在多数情况下效率较低,尤其是当图比较稀疏(边数远没有达到点数平方)时。(例如有 1000 个点,但仅有 1000 条边时,为边开的空间大小是 1000*1000,就会很浪费)所以基本不用邻接矩阵。
#include <bits/stdc++.h>
using namespace std;

const int maxn=1005;  // 图的最大 点 数量
int n;
int v[maxn][maxn];

int main()
{
   
    cin>>n;
    
    // 读入邻接矩阵
    for(int i=1; i<=n; i_++)
        for(int j=1; j<=n; j++)
            cin>>v[i][j];
     
    // 下面的代码将找到与点 i 有直接连接的每一个点以及那条边的长度
    for(
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值