图的存储结构

图的存储结构

图没有顺序存储结构,但是可以借助二维数组来表示元素之间的关系,即邻接矩阵表示法。常见的链式存储有邻接表、十字链表和邻接多重表。

邻接矩阵

邻接矩阵表示法

邻接矩阵是表示顶点之间相邻关系的矩阵。

在一个邻接矩阵中,wi和wj表示边上的权的值。∞表示计算机允许的、大于所有边上的权值的数。

//--- 图的邻接矩阵存储表示
#define MaxInt 32767		//表示极大值,即∞
#define MVNum 100		//最大顶点数
typedef char VerTexType;		//假设顶点的数据类型为字符类
typedef int ArcType;		//假设的权值类型为整形
typedef struct
{
	VerTexType vexs[MVNum];		//顶点表
	ArcType arcs[MVNum][MVNum];		//邻接矩阵
	int vexnum, arcnum;		//图的当前点数和边数
}

采用邻接矩阵表示法创建无向网

「算法步骤」:

​ 已知一个图的点和边,使用邻接矩阵表示法来创建此图的方法比较简单。

​ 1⃣️ 输入总顶点数和总边数。

​ 2⃣️ 依次输入点的信息存入顶点表中。

​ 3⃣️ 初始化邻接矩阵,是每个权值初始化为极大值。

​ 4⃣️ 构造邻接矩阵。依次输入每条边的顶点和其权值,确定两个顶点在图中的位置后,使相应的边赋予相应的权值,同时使其对称边赋予相同的权值。

「算法分析」:

​ 该算法的时间复杂度是大欧的n次平方。

「优缺点」:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值