掌握图存储结构:从定义到实现详解

需积分: 10 10 下载量 147 浏览量 更新于2024-08-02 收藏 1.89MB PPT 举报
在学习数据结构中的图这一章节时,理解图的结构定义和存储表示至关重要。首先,图被定义为由一个顶点集V和一个弧集R构成的数据结构,其中每个弧<v,w>代表从顶点v到w的有向关系,v是弧尾,w是弧头。对于有向图,弧具有方向性;而无向图中,如果<v,w>属于R,那么<w,v>也必须包含在内,以无序对形式表示两个有序对。 图的结构定义分为有向图和无向图。有向图中的弧是有方向性的,如例子G1所示,而无向图如G2则是通过无序对表示边的存在。在图论中,还有一些重要的名词和术语: 1. **网与子图**:网络可以指带权的图,子图是指在原图中选取部分顶点和边构成的新图。比如,G'是G的一个子图,如果V'是V的子集且R'是R中仅包含顶点对(v,w)满足v、w都在V'内的边或弧。 2. **完全图、稀疏图与稠密图**:衡量图的密度,完全图中每对不同顶点间都有边,无向的n个顶点完全图有n(n-1)/2条边,有向的n个顶点完全图有n(n-1)条弧。稀疏图是指边或弧的数量远小于顶点数量的平方根,稠密图则相反。 3. **度、入度与出度**:度是指一个顶点关联的边或弧的总数,包括出度(指向其他顶点的边数)和入度(来自其他顶点的边数)。如图中的顶点A,其度为出度+入度。 4. **路径、路径长度、简单路径和简单回路**:路径是从一个顶点到另一个顶点的边的序列,路径长度是边的数量。简单路径和简单回路意味着没有重复的顶点或边。连通性和循环的概念也很重要,如连通图、连通分量、强连通图和强连通分量。 5. **生成树和生成森林**:在无向图中,生成树是一棵连通的树,包含了所有顶点;生成森林则是多个连通树的集合,每个顶点恰好在一个连通树中。 理解这些基本概念和术语是学习图算法和数据结构的基础,掌握它们能够帮助你有效地处理各种图相关的数据操作和问题,如搜索、最短路径、最小生成树等。在创建图时,根据需求选择适当的存储结构,如邻接矩阵(用二维数组表示)、邻接表(使用链表或哈希表),能有效提升算法效率。通过练习小结和作业,逐步熟练这些概念,并将其应用到实际编程中。