初试811-数据结构(C语言)

图✨

知识点:

  • 🤩

    • 基本概念

      • 主要性质

        • 1、线形表可以是空表,树可以是空树,但图不能是空图。图中顶点集V一定非空,但边集E可以为空 2、完全图中,无向图n(n-1)/2条边,有向图n(n-1)条边 3、子图中,并非V和E的任何子集都构成G的子图,因为这样的子集可能不是图,即某些边,关联的顶点不在子图中 4、无向图的连通图,有向图的强连通图,不要主观臆断

          • 针对2性质:考察需固定多少边,非连通图无向图至少需要多少个顶点,即求出该边数完全图的顶点+1即可; 若一个图有n个顶点,若边数小于n-1,则此图必是非连通图;

            • 确保为n个顶点的图为一个连通图,先去保证n-1为强连通图,然后加一条边即必连通了

          • 针对4性质:如果强连通图,某顶点只有出度,一定为单独一个强连通分量

          • 难题,求森林的树的个数,即根的个数,由于每棵树除根节点外的每个节点对应一条边连接双亲节点,即用结点数-边数=根结点数

    • 存储结构

      • 邻接矩阵

        • 主要性质,王道P211,6题

      • 邻接表

        • 主要性质

          • 1、若邻接表中有奇数个边表节点,则图为有向图 2、在有向图邻接表中,顶点v在边表出现的次数,等于v的入度

    • 图的遍历

      • 深度优先遍历

        • 类比树

          • 类似于树的先根遍历 不同于,有重复访问,需要设置visited[](只要多边就有可能出现多次访问)

        • 性质

          • 形成的深度生成树个数等于连通分量,等于调用DFS的次数

          • 具有工作栈的性质,深度为V

          • 可以用于判断有向图中是否存在回路(通过每次递归查看栈中是否存在相同元素)

      • 广度优先遍历

        • 类比树

          • 类似于树的层次遍历 不同于,有重复访问,需要设置visited[](只要多边就有可能出现多次访问)

        • 性质

          • 形成的广度生成树个数等于连通分量,等于调用BFS的次数

          • 需要内存为V的辅助队列

          • 当各边的权值相等时,可以解决单源最短路径问题

    • 图的应用

      • MST最小生成树

        • prim算法

          • 性质

            • 1、只能使用带权无向图,而带权有向图由于两个节点之间来和回的权重不一样,无法确定

          • 思路

            • 1、从一个点出发,寻找一颗权值和最小的树,即每次选者权值最小的边,直至所有的顶点都已经加入

        • Kruskal算法

          • 思路

            • 1、每次从最小边出发,所有顶点不形成回路

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值