树结构(也称为图形结构)是描述节点与节点之间“层次”的关系,但是图结构却是讨论两个顶点之间的“连通与否”的关系,在图形中连接两顶点的边若填上加权值(也可以称为成本),这类图形就称为“网络”。图形除了被应用在数据结构中最短路径搜索、拓扑排序外,还能应用在系统分析中以时间为评审标准的性能评审技术,或者像“IC电路设计”、“交通网络规划”等关于图的应用。
1.图的简介
图的理论“简称图论”
1.1 图的定义
图是由“顶点”和“边”所组成的集合,通常用G=(V,E)来表示,V是所有顶点所组成的集合,E是所有边组成的集合。图的种类有两种:无向图和有向图。
2.图的数据表示法
2.1邻接矩阵法
图A有n个顶点,以n*n的二维矩阵列来表示。
2.2邻接链表法
前面的邻接矩阵法,优点是借着矩阵的运算,有许多特别的应用。要在图中加入新边时,这个表示法的插入与删除操作相当简易。不过要考虑到稀疏矩阵空间浪费的问题,另外,如果要计算所有顶点的度数时,其时间复杂度为O(n^2)。
因此可以考虑更有效的方法,就是邻接表法。这种表示法就是将一个n行的邻接矩阵表示成n个链表,这种做法和邻接矩阵相比较节省空间,如计算所有顶点的度数时,其时间复杂度为O(n+e),缺点是如有新边加入图中或从图中删除边时就要修改相关的链接,较为麻烦费时。
首先将图的n个顶点作为n个链表头,每个链表中的节点表示它们和链表头节点之间有边相连。
2.3邻接复合链表法
上面介绍了两个图的表示法都是从图的顶点出发,但如果要处理的是“边”则必须使用邻接复合链表(或称为邻接多叉链表)。邻接复合链表是处理无向图的另一种方法。复合链表的节点用于存储边的数据。
2.4索引表格法
索引表格表示法,是一种用一维数组来按序存储与各顶点相邻的所有顶点,并建立索引表格来记录各顶点在此一维数组中第一个与该顶点相邻的位置。
数据结构-图结构
![](https://img-home.csdnimg.cn/images/20240711042549.png)