当前位置: 首页> 游戏> 评测 > 网页版微信官方下载_南通网站定制_最近一周新闻大事件_洛阳seo外包公司费用

网页版微信官方下载_南通网站定制_最近一周新闻大事件_洛阳seo外包公司费用

时间:2025/7/31 4:03:50来源:https://blog.csdn.net/qq_32882309/article/details/142970870 浏览次数:1次
网页版微信官方下载_南通网站定制_最近一周新闻大事件_洛阳seo外包公司费用

本文目录

    • 14 邻接矩阵(Adjacency Matrix)
      • S1 说明
        • 矩阵结构
        • 特点
      • S2 示例
      • S3 应用1:社交网络
      • S4 应用2:图形学
      • S4 应用3:交通网络
      • S5 实际问题:城市交通网络中计算最短距离

往期链接

01 数组02 链表03 栈04 队列05 二叉树06 二叉搜索树07 AVL树08 红黑树09 B树10 B+树
11 线段树12 树状数组13 图形数据结构

14 邻接矩阵(Adjacency Matrix)

S1 说明

邻接矩阵是一种用二维数组表示图的结构。在一个图中,每个节点(顶点)用矩阵的行和列表示,矩阵中的元素表示节点之间的边的存在与否(及其权重)。

矩阵结构
  • 对于一个有 n n n个顶点的图,邻接矩阵是一个 n × n n×n n×n的矩阵。
  • 如果存在一条边连接顶点 i i i和顶点 j j j,则 m a t r i x [ i ] [ j ] matrix[i][j] matrix[i][j]的值为边的权重(对于无权图为 1)。
  • 如果不存在边,则 m a t r i x [ i ] [ j ] matrix[i][j] matrix[i][j]的值为 0。
特点

空间复杂度
对于一个有 n n n个顶点的图,邻接矩阵的空间复杂度为 O ( n 2 ) O(n^2) O(n2)。在稀疏图中,空间利用率较低。
查找时间:
查找两个顶点之间是否有边的时间复杂度为 O ( 1 ) O(1) O(1),非常高效。
适用场景:
适合密集图(边数接近 n 2 n^2 n2的图),因为在这种情况下,邻接矩阵的空间利用更高。不适合稀疏图(边数远小于 n 2 n^2 n2的图),因为会浪费大量空间。
易于实现:
实现相对简单,适合初学者理解图的基本概念。

S2 示例

class Graph:def __init__(self, num_vertices):self.num_vertices = num_vertices# 创建一个 num_vertices x num_vertices 的邻接矩阵self.adjacency_matrix = [[0] * num_vertices for _ in range(num_vertices)]def add_edge(self, u, v, weight=1):if u >= self.num_vertices or v >= self.num_vertices:print("Invalid vertex index")returnself.adjacency_matrix[u][v] = weight  # 有向图# self.adjacency_matrix[v][u] = weight  # 无向图,取消注释即可def remove_edge(self, u, v):if u >= self.num_vertices or v >= self.num_vertices:print("Invalid vertex index")returnself.adjacenc
关键字:网页版微信官方下载_南通网站定制_最近一周新闻大事件_洛阳seo外包公司费用

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: