理解邻接多重表与邻接表:C语言版严蔚敏讲解

需积分: 10 0 下载量 21 浏览量 更新于2024-08-20 收藏 3.82MB PPT 举报
在《数据结构(C语言版)》中,作者严蔚敏和吴伟民讨论了邻接多重表与邻接表这两种数据结构在无向图中的表示方法。邻接表是数据结构中常见的图的表示方式,它通过节点和边的连接来表示图中各顶点之间的关系。在邻接表中,每个顶点对应一个链表,链表中的元素是与其相邻的顶点,这种表示方式简洁且空间效率高。 邻接多重表则是在邻接表的基础上有所扩展,对于图中的每条边,它用两个表结点来表示,这意味着一条边在邻接多重表中可能会出现两次,一次代表每条边的起点,另一次代表终点。这样做的目的是为了便于处理带有权重或者多条边连接同一对顶点的情况。例如,在图7-15所示的无向图中,每个顶点和其相邻顶点之间可能存在双向的边,因此在多重邻接链表中会用两个表结点来分别表示这两个方向。 两者的主要区别在于边的表示形式:邻接表使用单个表结点表示每条边,而邻接多重表使用两个表结点。然而,它们的核心信息是相同的,即描述顶点之间的连接关系。在操作上,如查找某个顶点的邻居、添加或删除边等,两者的基本实现原理相似,但具体细节可能因边的性质不同而有所差异。 在实际编程中,选择邻接多重表还是邻接表取决于问题的具体需求。如果图中存在多条边连接同一对顶点,或者需要高效地支持边的权重,邻接多重表可能是更好的选择。而如果图较简单,且边的数量较少,邻接表的简单表示可能更为合适。 《数据结构(C语言版)》中的这一章节不仅涵盖了基本的数据结构概念,还深入剖析了邻接表和邻接多重表在处理实际问题中的应用,这对于理解和实现计算机程序中的数据结构和算法至关重要。理解这些概念有助于提高程序设计的效率和灵活性,尤其是在处理大规模和复杂的数据结构问题时。