任何两个顶点之间都可能存在边,无法通过存储位置表示这种任意的逻辑关系。
图无法采用顺序存储结构。
将顶点与边分开存储。
用一个一维数组存储图中顶点的信息,用一个二维数组存储图中各顶点之间的邻接关系。
假设图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;
- }
- }
-
相关阅读:
用免费GPU线上优化猫狗识别实践
Python之NumPy超详细学习指南:从入门到精通(上篇)
JAVA小区门户网站(源代码+论文)
java源码系列:HashMap底层存储原理详解——3、技术本质-原理过程-算法之哈希算法、哈希code、ascii码计算、取模运算等
leetcode.1769 移动所有球到每个盒子所需的最小操作数
力扣371周赛
Visual Assist v10.9.2471.0 Crack
图解LeetCode——654. 最大二叉树(难度:中等)
2023年【安全员-B证】新版试题及安全员-B证免费试题
mmclassification安装与调试
-
原文地址:https://blog.csdn.net/Hsianus/article/details/134474583