数据结构之图篇

无向图
邻接点、边
满足--条件的称为连通图
与任何点都有连线称为完全图
所有顶点仅有一次连接称为生成树 S=n-1

有向图
顶点(节点)、弧(弧尾 -出度、弧头-入度)--   

图的应用

路径规划
工程规划
战略规划

图的存储结构

包括:邻接矩阵 、邻接表、 十字链表、 邻接多重表

邻接矩阵

有向图
数据结构之图篇_第1张图片

无向图
数据结构之图篇_第2张图片

邻接矩阵表达成语句

int matrix[4][4];

邻接表

顶点的表达:顶点索引+出弧链表头指针+顶点数据
弧的表示方法: 弧头顶点索引+下一个弧指针+弧数据(弧头 权值 弧尾 )

结构体表示

 struct node
 {
    顶点索引;
    该顶点弧链表的头结点;
    顶点数据;
 };
struct Arc
{
    指向的顶点索引;
    指向下一条弧是指针;
    弧信息;

};

struct map
{
    顶点数组;

};

十字链表的存储

数据结构之图篇_第3张图片
结构体存储
数据结构之图篇_第4张图片

邻接多重表的存储(无向图)

数据结构之图篇_第5张图片
数据结构方式
数据结构之图篇_第6张图片

图的遍历(深度优先搜索、广度优先搜索)

深度优先搜索(前序遍历)
数据结构之图篇_第7张图片
广度优先搜索
数据结构之图篇_第8张图片

最小生成树
数据结构之图篇_第9张图片

普里姆算法

数据结构之图篇_第10张图片

数据结构之图篇_第11张图片
找出一个点,列出这个点的所有边,加入待选边集合,在待选边集合中找最小的权值边,然后再根据所选边的另一个顶点重复上述步骤

克鲁斯卡尔算法

数据结构之图篇_第12张图片
待选边集合中按权值选择边
进入已选边集合
已选边集合中点构成已涉及点集合
没有连在一起的点不在一个点集合中
直到最后所有点构成连通图才结束

你可能感兴趣的:(数据结构之图篇)