本文为浙江大学mooc数据结构课程的搬运,原课程链接如下:https://www.icourse163.org/learn/ZJU-93001?tid=1459700443#/learn/content?type=detail&id=1235254055&sm=1

1 什么是图

“图”表示“多对多”关系,线性关系表示“一对一”关系,“树”表示“一对多”关系。

浙江大学 数据结构课程 第六讲 图(上)

浙江大学 数据结构课程 第六讲 图(上)

带权重的图称为网络。

怎么在程序中表示一个图?

浙江大学 数据结构课程 第六讲 图(上)

邻接矩阵:对角线均为0(不允许自回路);对称矩阵。

浙江大学 数据结构课程 第六讲 图(上)

浙江大学 数据结构课程 第六讲 图(上)

浙江大学 数据结构课程 第六讲 图(上)

浙江大学 数据结构课程 第六讲 图(上)

浙江大学 数据结构课程 第六讲 图(上)

使用N(N+1)/2的数组存储,只存储下三角。!!!!!!

  • 邻接表

浙江大学 数据结构课程 第六讲 图(上)

这种存储方法中,一条边同样被存了两次。

浙江大学 数据结构课程 第六讲 图(上)

浙江大学 数据结构课程 第六讲 图(上)

浙江大学 数据结构课程 第六讲 图(上)

2 图的遍历

深度优先搜索(Depth First Search,DFS)

浙江大学 数据结构课程 第六讲 图(上)

广度优先搜索(Breadth First Search,BFS)

相当于树的层序遍历。

浙江大学 数据结构课程 第六讲 图(上)

相关文章: