简介
该用户还未填写简介
擅长的技术栈
未填写擅长的技术栈
可提供的服务
暂无可提供的服务
图的存储结构——邻接表
回忆邻接矩阵的顺序存储结构,其内存空间预先分配,容易导致空间的溢出或者浪费。为了使增减结点方便,提高空间利用效率,引入链式存储法——邻接表。
最短路径——迪杰斯特拉算法
日常生活中常常涉及最短路径问题,如在一个城市交通网中,如何选取从起点到达终点的路径,才能使这一趟旅程的路程最短?或所需时间最少?或所需交通费用最低?诸如此类问题都可以抽象为求解图的最短路径问题。我们把图的顶点表示为城市的交通站点,边表示交通站点间的路径,边的权值表示为交通站点间的路径的距离、所需时间或费用等等,则上述问题放映到图上就是,如何求解图顶点间权值之和最小的路径。
图的遍历——深度优先遍历与广度优先遍历
图的遍历需要定义一个辅助数组以记录某个顶点是否曾被访问,其遍历方式分为深度优先搜索与广度优先搜索。深度优先搜索符合递归的特性,广度优先搜索需要一个队列结构以实现图的层序遍历。这两种遍历方式的时间与空间复杂度在所选用图的存储结构相同的情况下相同,也就是所搜索算法的复杂度与搜索方式本身无关,与图的存储结构有关。一般而言,稠密图选用邻接矩阵存储,稀疏图选取邻接表存储。
图的存储结构——十字链表
回忆邻接矩阵与邻接表的存储结构,它们都不便于求顶点的出度与入度。为了解决上述两者求出入度的局限性,在此引入十字链表,它可以看成邻接表与逆邻接表的结合,方便求解顶点出入度与获取顶点的出入度边。
到底了