数据结构--图

图的基本概念

1. 图的构成

有向图:尖括号表示

无向图:圆括号表示

2.顶点的度

无向图中:这个点有几条边度就是几

在有向图中:分为初度和入度,进度和初度加起来。

3.完全图

每对顶点之间都有一条边相连。

在有向图中,每对顶点之间都有两条有向边相连。

4.路径和回路

路径长度:一个点到另一个点经过几条路径

回路:一个点到自己的路径

简单回路:除了起点和终点相同(不走重复点),没有其他元素相同。

5.连通图和连通分量

连通图:每个点到每个点都有路径

对于有向图:

单向连通:A点能到B点,而B点不能到达A点

双向连通为强连通

连通分量:一个图被分开了几部分,其中一部分为一个连通分量

6.网络

网络:图加上权值形成网络


图的存储

邻接矩阵表示两个顶点之间有没有边。如果有边则用1表示,如果没有边,则用0表示。

PS:无向图的邻接矩阵是对称的,所以有时候用上三角或者下三角来存储,用来节省空间。

在无向图中,边是单方向的。如果有则用1表示,如果没有反方向的边,则用0表示

网络的邻接存储方式:在基础的邻接存储上加上权值。

图的遍历

深度优先遍历:纵向的,类似于前序遍历

首先访问出发顶点v1,然后搜索相邻结点是否被访问过,如果没有被访问过,则从改点出发继续深度优先遍历。

广度优先遍历:横向的,类似于层次遍历

首先访问出发顶点v1;然后访问与顶点v邻接的全部未访问顶点w、x、y;然后再依次访问w、x、y邻接的为访问的顶点。

图的最小生成树:

普里姆算法:先选定一个原点,从这个原点着手找距离原点最近的一个顶点,找到这个顶点之后并入原点形成一个集合,如果这个集合中的任一顶点距离原来的路径比较近,则选择现有路径,去除原来路径。

克鲁斯卡尔算法:从边着手(从最小的边画起)

先把所有的顶点写出来,把最小的边依次添加进去。如果让这些顶点能形成环路,则不要此边。

当边为n-1条时,结束。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值