一.邻接矩阵法存储不带权图:
结点不带权值:


1.左图的无向图中,A到B直达的有一条路,所以A行B列的值为1->由于无向图不存在方向,所以B到A直达的有一条路,因此B行A列的值为1;
左图的无向图中,A到F没有直达的路,所以A行F列的值为0->由于无向图不存在方向,所以F到A没有直达的路,因此F行A列的值为0;
结论:无向图中采用邻接矩阵法,0表示两个顶点不邻接,1表示两个顶点邻接,边对应两个1;
2.右图的有向图中,A到B直达的有一条路,所以A行B列的值为1,
B到A没有直达的路,所以B行A列的值为0;
结论:有向图中采用邻接矩阵法,1表示有向边(弧),有向边(弧)对应一个1;
3.上述图片中的代码,顶点表是要存入边表的即表中存点;
4.顶点表也可以是其他类型,如整型,自定义数据类型;
5.int型表示边占4个字节(4B)或者8个字节(8B),用bool型或枚举型变量表示边则占1个字节(1B);
6.注:表中的顶点是有下标(编号)的,这样是为了在表中方便寻找两个顶点的关系,如A的下标为0,B的下标为1,这样比如在左图的无向图中只需要找第0行第1列就可以查找顶点A和B的关系;
7.邻接矩阵的边需要用二位数组存储,因为两个顶点确定一条边,所以上述图片中用来存储邻接矩阵的边的二维数组也是和顶点数相关;
8.如何求顶点的度(针对无向图和有向图),入度和出度(只针对有向图):
-
无向图:如上述图片中的B结点,在B结点这一行中,

最低0.47元/天 解锁文章
2171

被折叠的 条评论
为什么被折叠?



