第六章第一节:图的基本概念和存储及基本操作

news2024/12/23 12:11:39

文章目录

  • 1. 图的基本概念
    • 1.1 图逻辑结构的应用
    • 1.2 无向图,有向图
    • 1.3 简单图,多重图
    • 1.4 顶点的度,入度和出度
    • 1.5 顶点和顶点的关系描述
    • 1.6 连通图,强连通图
    • 1.7 研究图的局部——子图
    • 1.8 生成树
    • 1.9 生成森林
    • 1.10 边的权,带权图/网
    • 1.11 无向完全图,有向完全图
    • 1.13 树、有向树
  • 2. 图的存储及基本操作
    • 2.1 邻接矩阵法
      • 2.1.1 如何求顶点的度、入度、出度?
      • 2.1.2 邻接矩阵法存储带权图(网)
      • 2.1.3 邻接矩阵法的性能分析
    • 2.2 邻接表法
    • 2.3 十字链表(存储有向图)
    • 2.4 邻接多重表(存储无向图)
    • 2.5 图的基本操作

1. 图的基本概念

在这里插入图片描述
教程:图的基本结构
图是一种相较于链表和树更为复杂的数据结构。在线性表中,数据元素之间仅有线性关系,每个元素只有一个直接前驱和一个直接后继(每个元素之间一个一个逐个相连)。在树形结构中,数据元素之间有着明显的层次关系,上一层元素能和下层多个元素相关,但是下层元素只能与一个上层元素相关。而在图结构中,节点之间的关系任意,任何两个顶点都可能相连。
图结构如图所示

在这里插入图片描述
二、图的术语
接下来介绍图结构中的一些术语。
1.顶点 :图中的数据元素通常称为顶点。
2.边 :两顶点间的连线称为边。
3.V是顶点的有穷非空集合。
4.VR是两个顶点之间关系的集合,也是边的集合。
5.通常表示为:G(V,E),G表示一个图,V是图G中顶点的集合,E是图G中边的集合。
6.无向边:若顶点A到顶点B的边没有方向,称这条边为无向边,用无序偶对(A,B)或(B,A)表示。

7.有向边:若顶点A到顶点B的边有方向,称这条边为有向边,也称为弧(Arc),用有序对 < B, A >表示;B表示弧尾,A表示弧头
8.由无向边构成的图为无向图
9.由有向边构成的图为有向图

在这里插入图片描述

G:Graph
V:Vertex
E: Edge

1.1 图逻辑结构的应用

在这里插入图片描述
在这里插入图片描述

1.2 无向图,有向图

在这里插入图片描述
在这里插入图片描述

1.3 简单图,多重图

在这里插入图片描述

1.4 顶点的度,入度和出度

在这里插入图片描述
在这里插入图片描述

1.5 顶点和顶点的关系描述

在这里插入图片描述

1.6 连通图,强连通图

在这里插入图片描述

  • 连通图是无向图
  • 强连通图是有向图
    在这里插入图片描述
    在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

1.7 研究图的局部——子图

在这里插入图片描述

1.8 生成树

在这里插入图片描述

1.9 生成森林

在这里插入图片描述

1.10 边的权,带权图/网

在这里插入图片描述
在这里插入图片描述

1.11 无向完全图,有向完全图

在这里插入图片描述

在这里插入图片描述

1.13 树、有向树

在这里插入图片描述
在这里插入图片描述

2. 图的存储及基本操作

在这里插入图片描述
教程:图的存储及基本操作

2.1 邻接矩阵法

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
图的邻接矩阵存储结构定义如下:


#define MaxVertexNum 100 // 顶点数目的最大值
typedef struct {
	char Vex[MaxVertexNum];//顶点表
	int Edge[MaxVertexNum][MaxVertexNum];//邻接矩阵,边表
	int vexnum,arcnum;//图的当前顶点数和边数/弧数
}MGraph;

2.1.1 如何求顶点的度、入度、出度?

在这里插入图片描述

2.1.2 邻接矩阵法存储带权图(网)

在这里插入图片描述

#define MaxVertexNum 100 // 顶点数目的最大值
#define INFINITY 最大值的int// 宏定义常量“无穷”
typedef char VertexType;//顶点的数据类型
typedef int EdgeType; //带权图中边上权值的数据类型
typedef struct {
	VertexType  Vex[MaxVertexNum];//顶点表
	EdgeType Edge[MaxVertexNum][MaxVertexNum];//边的权
	int vexnum,arcnum;//图的当前顶点数和边数/弧数
}MGraph;

2.1.3 邻接矩阵法的性能分析

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.2 邻接表法

邻接表法

图的邻接表是一种顺序与链式存储相结合的存储方式。下面给出一个示例,以便大家能够理解邻接表这种存储方式:
无向图G1
在这里插入图片描述

用邻接表来存储G1
在这里插入图片描述

每一个顶点所在结点都是之后链表的头结点,之后的链表结点存放从头结点所存顶点能够直接到达顶点的位置下标,如顶点A能够直接到达D,B两个顶点,D的顶点存放在3位置,B顶点存放在1位置,所以A之后的链表结点存放的值为3和1

二、结构
结构图
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
图的邻接表存储结构定义如下:

在这里插入图片描述

在这里插入图片描述


在这里插入图片描述


在这里插入图片描述
在这里插入图片描述

2.3 十字链表(存储有向图)

在这里插入图片描述
在这里插入图片描述

2.4 邻接多重表(存储无向图)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.5 图的基本操作

教程:图的基本操作

在这里插入图片描述
在这里插入图片描述


在这里插入图片描述


在这里插入图片描述


在这里插入图片描述


在这里插入图片描述


在这里插入图片描述


在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/12093.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

手机怎么实现图片转文字操作?学会这三招就够了

随着互联网不断发展&#xff0c;我们手机的功能越来越丰富&#xff0c;现在基本上只需要一部手机&#xff0c;就能满足我们的多样化需求。比如想要提取书本中的文字&#xff0c;我们不需要再手动输入&#xff0c;只要将文字内容拍照下来&#xff0c;利用一些软件来提取图片中的…

【深度学习】argparse模块一些学习心得体会(2)| parser.parse_known_args() |位置参数 可选参数

文章目录前言一、位置参数和可选参数二、parser.parse_known_args()前言 之前我们写了一期命令行模块的使用介绍&#xff0c;但是依然有很多语法是没有介绍到的&#xff1a;比如parser.parse_known_args()这样的命令。这样的命令大量出现在各大开源项目中&#xff0c;今天我就…

外汇天眼:官网虚假宣传受到多重监管!FCA率先发出警告!

11月16日&#xff0c;英国金融行为监管局( FCA )发出最新警告&#xff0c;提示投资者警惕与 Trade Top FX 这家未经授权的公司打交道。 FCA警告称&#xff1a;Trade Top FX 在未经我们授权的情况下在英国提供金融服务或产品&#xff0c;如果一旦遭受资金损失&#xff0c;您将无…

Word处理控件Aspose.Words功能演示:在 Python 中比较两个 Word 文档

在各种情况下执行 Word 文档的比较以确定差异。各种在线工具允许您比较 Word 文档&#xff0c;但是&#xff0c;您可能需要在应用程序中实现比较功能。为实现它&#xff0c;本文展示了如何在 Python 中比较两个 Word 文档。 Aspose.Words for . Python 最新下载&#xff08;qu…

子容器在启动期间失败

​ 遇错&#xff1a; 今天遇到一个Bug&#xff1a;A child container failed during start 中文翻译为&#xff1a;子容器在启动期间失败 事情是这样的&#xff0c;一开始我在做案例的时候使用的tomcat是本地集成的&#xff0c;项目能正常运行&#xff1b; 后来我将tomcat的…

Dopamine-PEG-N3,DOPA-PEG-azide,水溶性PEG试剂供应

1、名称 英文&#xff1a;Dopamine-PEG-N3&#xff0c;DOPA-PEG-azide 中文&#xff1a;多巴胺-聚乙二醇-叠氮 2、CAS编号&#xff1a;N/A 3、所属分类&#xff1a;Azide PEG Dopamine PEG 4、分子量&#xff1a;可定制&#xff0c;有2k、5k、3.4k、10k、20k、1k 5、质量…

【salesforce】Lightning Web Component Study Log —— Part 2

持续学习中… 文章目录版本管理V1.0.01. The Lightning Web Components Model1.1 Web演变1.2 LWC1.3Aura和LWC的互用性2. Creating Lightning Web Components2.1 在VSCode定义一个LWC组件2.2 文件构成2.3 客户端-服务端体系结构2.4 基础UI组件-JS2.5 基础UI组件-HTML2.6 基础UI…

艾美捷PEG-2000 DMG解决方案

艾美捷PEG-2000 DMG英文全名1,2-dimyristoyl-rac-glycero-3-methoxypolyethylene glycol-2000&#xff0c;中文名可对应翻译为二肉豆蔻酰甘油-聚乙二醇2000。它的分子式为C122H242O50&#xff0c;分子量2509.2&#xff08;平均值&#xff09;&#xff0c;代表结构如下&#xff…

数字IC手撕代码-XX公司笔试真题(串并转换控制)

前言&#xff1a; 本专栏旨在记录高频笔面试手撕代码题&#xff0c;以备数字前端秋招&#xff0c;本专栏所有文章提供原理分析、代码及波形&#xff0c;所有代码均经过本人验证。 目录如下&#xff1a; 1.数字IC手撕代码-分频器&#xff08;任意偶数分频&#xff09; 2.数字…

JetsonNano部署yolo5 c++ onnx

编译OpenCV最新4.5.x版本 Jetson Nano自带的OpenCV版本比较低&#xff0c;Jetpack4.6对应的OpenCV版本为4.1的 而OpenCV当前最新版本已经到了4.5跟4.6了&#xff0c;4.5.x中OpenCV DNN支持了很多新的模型推理跟新的特性都无法在OpenCV4.1上演示&#xff0c;所以我决定从源码编…

Go语言 02

2.1 下载安装 Go Golang 中文网 Go 的安装也是十分的简洁、简单。就是 Next。哈哈 ~ 输入 go version 来查看是否安装完成吧 ~ 2.2 配置环境变量和工作目录 GOROOT&#xff1a;C:\Environment\Go 意味着 Go 在哪里。 在配置 GOPATH 之前&#xff0c;先把用户的 GOPATH 删掉。…

远程预付费电能管理系统在工业园的应用,主要功能有哪些?

安科瑞 李可欣 具体可咨询&#xff1a;Acrel_lkx 0概述 本项目为凌云工业园提供解决方案。本项目共有DDSY1352-NK/DTSY1352-NK预付费计量表41台&#xff0c;针对凌云工业园商业用电实现用电的智能化管理&#xff0c;通过安科瑞终端预付费电能表计来计量每个商铺的用电量&am…

web前端-html-css-background背景(color样式,image图片,repeat重复方式,position定位,简写)

背景 背景样式和背景图片重复方式 <!DOCTYPE html> <html><head><meta charset"utf-8" /><title></title><style type"text/css">.box1 {width: 1024px;height: 724px;margin: 0 auto;/*设置背景样式*/backgr…

Go-Zero环境搭建

Go-Zero环境搭建go-zero 需要安装的组件1 Protobuf下载安装需要先下载protoc执行器2 Protobuf下Go、GRPC插件的安装3 goctl 安装go-zero 需要安装的组件 protocprotoc-gen-goprotoc-gen-go-grpcgoctl 1 Protobuf下载安装 需要先下载protoc执行器 到 https://github.com/pro…

磷酸酶、转录因子、KRAS ——“不可成药”靶点?

不可成药的三大类靶点 传统的药物靶点绝大部分是具有适合的结合位点和明确的活性位点的蛋白质。药物分子往往通过“占位驱动”的药理学作用模式发挥作用。这种方法虽然可行&#xff0c;但并不能适用于所有的靶蛋白&#xff0c;尤其是在蛋白本身缺乏相应的结合口袋、蛋白的内源性…

天然产物化合物库

据文献报道&#xff0c;在传统药物研发时代&#xff0c;天然产物是新药研发最重要的、也几乎是独有的源泉&#xff0c;当时超过 80% 的药物均是原始天然产物或者其类似物&#xff1b;随着有机化学、药物化学、计算机技术等的发展&#xff0c;即使到了人工合成小分子药物占主导地…

Neo4J超详细专题教程,快来收藏起来吧

Neo4J超详细教程 Lecture&#xff1a;波哥 一、Neo4J相关介绍 1.为什么需要图数据库 随着社交、电商、金融、零售、物联网等行业的快速发展&#xff0c;现实社会织起了了一张庞大而复杂的关系 网&#xff0c;传统数据库很难处理关系运算。大数据行业需要处理的数据之间的关系随…

webpack5 import动态导入实现按需加载并给文件统一命名

想要实现按需加载,动态导入模块。还需要额外配置: console.log("hello main");document.getElementById("btn").onClick = function () {// 动态导入 --> 实现按需加载 -->then是加载成功要做的处理不处理的话可以不写import( "./js/math.j…

【yarn】任务日志丢失问题分析

【yarn】任务日志丢失问题分析 故事背景 今天中午收到了一个报警邮件通知。内容大致为&#xff1a;有一个正在 yarn上运行的flink的实时任务挂掉了。 针对上述的现象&#xff0c;我们的开发工程师先打开yarn的web ui找到对应的job的任务页面。查询任务日志。 点击这个log&am…

java计算机毕业设计springboot+vue宠物服务管理系统

项目介绍 计算机网络的发展,促进了社会各行业的进步,带来了经济快速增长。用户通过本平台发布宠物趣事,进行展示,在平台上和用户进行实时的交流沟通,达成交易。用户登录后,把想要交易的宠物周边商品发布到平台上,进行交易,提高了效率,减少了时间成本,并且在交易过程中,宠物服务…