任何两个顶点之间都可能存在边,无法通过存储位置表示这种任意的逻辑关系。
图无法采用顺序存储结构。
将顶点与边分开存储。
用一个一维数组存储图中顶点的信息,用一个二维数组存储图中各顶点之间的邻接关系。
假设图G有n个顶点,则它的邻接矩阵是一个n*n的方阵

无向图的邻接矩阵是一个对称矩阵,主对角线为0
邻接矩阵的第i行非零元素的个数
判断arc[i][j]是否为1
将数组中第i行元素扫描一遍,若arc[i][j]为1,则顶点j为顶点i的邻接点
有向完全图:任意两个顶点之间都有方向相反的弧
扫描第i行
扫描第i列

- const int MAX_VERTEX=10;//图的最大顶点数
- template <class T>
- class MGraph{
- private:
- T vertex[MAX_VERTEX];
- int arc[MAX_VERTEX][MAX_VERTEX];
- int vertexNum,arcNum;//实际顶点个数,边的条数
- public:
- MGraph(T v[],int n,int e);
- ~MGraph();
- void DFSTraverse(int v);
- void BFSTraverse(int v);
- };
- template<class T>
- MGraph
::MGraph(T v[],int n,int e){ - int vi,vj;
- vertexNum=n;
- arcNum=e;
- for(int i=0;i
- vertex[i]=v[i];
- }
- for(int i=0;i
//初始化邻接矩阵 - for(int j=0;j
- arc[i][j]=0;
- }
- }
- for(int i=0;i
//依次输入每一条边 - cin>>vi>>vj;//输入边依附的两个顶点的编号
- arc[vi][vj]=1;
- arc[vj][vi]=1;
- }
- }
-
相关阅读:
Python在数据分析与可视化中的深度实践
java虚拟机详解篇十一(java虚拟机栈)
汽车诊断仪算法保护芯片——LKT4305-GM
Java在算法题中的输入问题
MATLAB R2022b遇到“License Manager Error -8”怎么解决
[附源码]计算机毕业设计springboot汽配管理系统
源代码管理——码云Gitee
齐岳定制:DBCO-PEG-Mesylate|二苯并环辛炔-聚乙二醇-甲磺酸酯
514. 自由之路
【OpenCV入门学习--python】直方图的比较
-
原文地址:https://blog.csdn.net/Hsianus/article/details/134474583