数据结构:图

图 是一种非线性数据结构,又[节点(顶点) vertex] 和 [边 edge]组成,每条边连接一对顶点。

根据边的方向有无,图可分为[有向图] 和 [无向图]。 本文以无向图为例开展介绍。

如下图所示,此无向图的 顶点 集合分别为:

***顶点集合: vertices ={1,2,3,4,5}

***边集合: edges ={(1,2),(1,3),(1,4),(1,5),(2,4),(3,5),(4,5)}

Picture7.png

表示图的方法通常有两种:

        1.邻接矩阵:使用数组vertice存储顶点,邻接矩阵edges存储边;edges[i][j]代表节点 i+1 和节点 j+1 之间是否有边。

                                         

int[] vertices = {1,2,3,4,5};
int[][] edges = {{0, 1, 1, 1, 1},
                 {1, 0, 0, 1, 0},
                 {1, 0, 0, 0, 1},
                 {1, 1, 0, 0, 1},
                 {1, 0, 1, 1, 0}};

 

邻接矩阵 VS 邻接表 :

邻接矩阵的大小只与节点数量有关,即 N^2  ,其中 NN为节点数量。因此,当边数量明显少于节点数量时,使用邻接矩阵存储图会造成较大的内存浪费。
因此,邻接表 适合存储稀疏图(顶点较多、边较少); 邻接矩阵 适合存储稠密图(顶点较少、边较多)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值