图的概念:

包含

  • 一组顶点:通常用V(Vertext)表示顶点集合
  • 一组边:通常用E(Edge)表示边的集合
    边是顶点队:(v, w)∈ E, 其中v,w∈V
    有向边

抽象数据类型定义

类型名称:图(Graph)
数据对象集:G(V, E)由一个非空的有限顶点集合V和一个有限边集合E组成。
操作集:对任意图G∈Graph,以及v∈V, e∈E

-Graph Create( ):建立并返回空图;
-Graph InsertVertext(Graph G, Vertex v):将v插入G;
-Graph InsertEdge(Graph G, Edge e):将e插入G;
- void DFS(Graph G, Vertext v):从顶点出发深度优先遍历图G;
- void BFS(Graph G, Vertext v):从顶点v出发宽度优先遍历图G;
- void ShortestPath(Graph G, Vertex v, int Dist[]):计算图G中顶点v到任意其他顶点的最短距离;

图的表示

例如如下一张图:
这里写图片描述

该怎么在程序中表示他们的呢?
实际上我们想要表示的是这些顶点之间的关系。
但是这又怎么表呢?
其实可以使用邻接矩阵来表示:

邻接矩阵G[N][N]——N 个顶点从0 到N-1 编号
G[i][j] =1 若<v i ,v j > 是G的边
G[i][j] = 0 若<v i ,v j > 不是G的边

使用矩阵表示下来之后就是这个样子:

这里写图片描述

但是对于这样一个图表示之后我们会发现沿着对角线是对称的,为什么呢?
实际上这种表示方法将两个顶点之间的边表示两次,这是无向图,就比较的浪费空间,我们就可以在计算机中存储矩阵的一部分例如:
这里写图片描述

这样就可节省很多空间:
这里写图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
编译原理是计算机专业的一门核心课程,旨在介绍编译程序构造的一般原理和基本方法。编译原理不仅是计算机科学理论的重要组成部分,也是实现高效、可靠的计算机程序设计的关键。本文将对编译原理的基本概念、发展历程、主要内容和实际应用进行详细介绍编译原理是计算机专业的一门核心课程,旨在介绍编译程序构造的一般原理和基本方法。编译原理不仅是计算机科学理论的重要组成部分,也是实现高效、可靠的计算机程序设计的关键。本文将对编译原理的基本概念、发展历程、主要内容和实际应用进行详细介绍编译原理是计算机专业的一门核心课程,旨在介绍编译程序构造的一般原理和基本方法。编译原理不仅是计算机科学理论的重要组成部分,也是实现高效、可靠的计算机程序设计的关键。本文将对编译原理的基本概念、发展历程、主要内容和实际应用进行详细介绍编译原理是计算机专业的一门核心课程,旨在介绍编译程序构造的一般原理和基本方法。编译原理不仅是计算机科学理论的重要组成部分,也是实现高效、可靠的计算机程序设计的关键。本文将对编译原理的基本概念、发展历程、主要内容和实际应用进行详细介绍编译原理是计算机专业的一门核心课程,旨在介绍编译程序构造的一般原理和基本

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值