图结构基础及通用代码实现
原创约 4619 字
一句话总结
图结构就是 多叉树结构 的延伸。图结构逻辑上由若干节点(Vertex
)和边(Edge
)构成,我们一般用邻接表、邻接矩阵等方式来存储图。
在树结构中,只允许父节点指向子节点,不存在子节点指向父节点的情况,子节点之间也不会互相链接;而图中没有那么多限制,节点之间可以相互指向,形成复杂的网络结构。
可视化面板 支持创建图结构,你可以打开下面的可视化面板,即可看到图的逻辑结构,以及邻接表和邻接矩阵的存储方式:
其实我本来想把图这种数据结构也放到二叉树结构的延伸章节中。不过考虑到图结构特有的算法比较丰富,所以单独开一个章节来讲图结构及算法,也方便本站内容的更新。
因为图结构可以对更复杂的问题进行抽象,所以产生了更复杂的图论算法,比较经典的有 二分图算法、拓扑排序、最短路径算法、最小生成树算法 等,这些都会在后文介绍。
本文主要介绍图的基本概念,以及如何用代码实现图结构。