什么是图?
Coddy 图:数据结构系列 #9 课程的第 2 课,共 14 课。
图是一种数据结构,用于表示一组事物及其之间的连接。这些事物称为顶点(或节点),连接称为边。
图无处不在。社交网络就是图(人是顶点,友谊是边)。道路地图也是图(交叉路口是顶点,街道是边)。互联网、依赖树和游戏地图都是图。
在这门课程中,我们重点学习无向图:如果一条边连接了 u 和 v,那么 v 也与 u 相连。边没有方向。为了简单起见,我们将使用整数作为顶点的键。
在内部,我们会用邻接表来存储图:将每个顶点映射到它的邻居列表。这样,只需访问一次映射就能查找某个顶点的邻居,而大多数图算法都需要这样的操作。
我们将在 Graph 类中实现以下操作:
- addVertex:添加一个尚无边的新顶点。
- addEdge:连接两个顶点。
- hasEdge:检查两个顶点是否相连。
- getNeighbors:获取某个顶点的邻居列表。
- removeEdge:断开两个顶点之间的连接。
- size:统计图中的顶点数量。
让我们来构建一个 Graph 类吧!
亲手试试
这节课没有代码挑战。
图:数据结构系列 #9中的所有课
自己练习: C 在线编译器