IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 数据结构与算法 -> 【数据结构】图的介绍 -> 正文阅读

[数据结构与算法]【数据结构】图的介绍

一、图、树、表的区别

表结构: 数据元素之间存在线性关系,每个数据元素只可能有一个前驱和一个后继(一对一)。
树结构: 数据元素之间存在层次关系,上一层的数据元素可以和下一层的多个数据元素存在关系(一对多)。
图结构: 任意两个数据元素之间都可能存在关系,可以是多对多的关系。

二、图的相关术语

1.顶点: 在图型结构中,数据元素被称为顶点。
2.弧: 从顶点V1出发,可以到达顶点V2,这种关系被称为弧,用<V1,V2>表示,V1被称为弧尾,V2被称为弧头,这种图被称为有向图。
3.边: 从顶点V1可以到达顶点V2,顶点V2可以到达顶点V1,这种关系被称为边,用(V1,V2),
这种图被称为无向图。
注意: 图型结构不讨论顶点到自身的边或弧。
4.无向图:
如果图中有一条边(V1,V2),则称V1,V2互为邻接点,即V1,V2相邻,或者说边(V1,V2)依附
于V1,V2,又或者说V1,V2相关联。与顶点V1相关联的顶点的数量,被称为V1的度。
5.有向图:
如果图中有一条弧<V1,V2>,则称顶点V1邻接到顶点V2,顶点V2邻接自顶点V1。
以顶点V1作为弧尾的弧的数量,被称为V1的出度。
以顶点V1作为弧头的弧的数量,被称为V1的入度。
6.如果用n表示顶点的数量,e表示边或弧的数量:
有向图的e的取值范围:[0,(n-1)*n],如果e的数量是(n-1)*n,这种图叫完全有向图
无向图的e的取值范围:[0,(n-1)*n/2],如果e的数量是(n-1)*n/2,这种图叫完全无向图
e < nlogn 这种图被称为稀疏图,反之被称为稠密图
7. 如果图的弧或边具有相关数据,这种与弧或边相关的数据叫权或权重,可看作是一个顶点到另一个顶点的消耗,带权的图称为
8. 假设有两个图:G1 = (V1,{E1}) , G2 = (V2,{E2})
如果V1是V2的子集且E1是E2的子集,则称G1是G2的子图
9. 有图G = (V,{E}),顶点V1到Vj的路径是一个顶点序列(V1,V2,…Vj)
(1)如果V1就是Vj,且边或弧的数量等于顶点数,该路径称为回路或环。
(2)序列中的顶点不重复出现和路径称为简单路径。
(3)除了每个顶点和最后一个顶点,其余顶点不重复出现的回路称为简单回路。
10. 在无向图G中,如果V1到V2有路径,则称V1和V2是连通的,如果图中的任意两个顶点都是连通的,则称G是连通图。如果G1不是连通图,而G是它的子图,则称G是G1的连通分量,也叫极大连通子图
11. 在有向图G中,如果任意一对顶点Vi,Vj,从Vi到Vj和Vj到Vi都存在路径,则称G是强连通图。如果G1不是强连通图,而G是它的子图,则称G是G1的强连通分量,也叫极大强连通子图
12. 一个连通图的生成树是一个极小连通子图,它包含图中的全部顶点,但只有n-1条边,如果在一棵生成树上再加一条边,必定构成一个环。
13. 一棵有n个顶点的生成树有且仅有n-1条边。但有n-1条边的图不一定是生成树。

二、图的相关术语

(1)邻接矩阵: 由顶点表和边表组成
[A][B][C][D][E][F][G] 顶点表
[0][0][0][0][0][0][1] //[A] 边表
[0][0][0][0][0][0][0] //[B]
[1][0][0][0][0][0][0] //[C]
[0][0][0][0][0][0][0] //[D]
[0][0][0][0][0][0][0] //[E]
[0][0][0][0][0][0][0] //[F]
[1][0][0][0][0][0][0] //[G]
优点:
计算出度、入度方便。
缺点:
添加删除麻烦,如果是稀疏图,非常浪费存储空间。

(2)邻接表:
顶点[数据][第一条边指针]
边结点 [顶点下标][下一条边指针]
[A]-> 1-> 3->
[B]-> 4-> 3->
[C]-> 3->
[D]-> 2-> 3->
[E]-> 3-> 0->
[F]-> 4->
是一种顺序+链式混合存储结构
优点:节约存储空间
缺点:计算入度不方便

(3)十字链表:
顶点[数据][弧头第一条边指针][弧尾第一条边指针]
边结点 [入顶点下标][出顶点下标][弧头相同指针][弧尾相同指针]
优点:在邻接的基础进行了拓展,既能节约存储空间,也能方便计算入度。

三、图的遍历:

深度优先:DFS
广度优先:BFS
遍历顺序不是唯一的,会受到顶点顺序和边的添加顺序的影响。

  数据结构与算法 最新文章
【力扣106】 从中序与后续遍历序列构造二叉
leetcode 322 零钱兑换
哈希的应用:海量数据处理
动态规划|最短Hamilton路径
华为机试_HJ41 称砝码【中等】【menset】【
【C与数据结构】——寒假提高每日练习Day1
基础算法——堆排序
2023王道数据结构线性表--单链表课后习题部
LeetCode 之 反转链表的一部分
【题解】lintcode必刷50题<有效的括号序列
上一篇文章      下一篇文章      查看所有文章
加:2021-09-22 14:55:44  更:2021-09-22 14:56:44 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/17 13:21:22-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码