数据结构--图。

news2024/11/19 2:28:26

在前面,我们学习了线性表和树,而接下来我们要学习的图相较于他们就更加复杂。

目录

一.图的有关概念


一.图的有关概念

1.定义

图(graph)G由两个集合V和E组成,记为G=(VE)。V是顶点的有穷非空集合;E是边的集合,边是V中顶点的无序对或有序对。E可以是边的空集,者E为空集,则G中只有顶点没有边。

2.由于“弧”是有方向的,因此称由顶点集和弧集构成的图为有向图。

3.顶点:在图中的数据元素

4.弧:若<v,w> VR,则<v,w>表示从v到w的一条弧

 弧尾:v(起始点)

 弧头:w(终端点)

5.有向图:是图论中的一种重要概念,用于描述各种事物之间的有序关系。它由一组节点(或顶点)以及连接这些节点的有向边组成。每条边都有一个方向,从一个节点指向另一个节点,表示了它们之间的关系和方向性

  无向图:边没有方向的图

6.完全图:有n(n-1)/2条边的无向图

  有向完全图:对于有向图,e的取值范围是0到n(n-1),具有n(n-1)条弧的有向图

  无向完全图:n个顶点的无向图,每个顶点与其他n-1个顶点都有边,具有最大边数n(n-1)/2

7.稀疏图:有很少条边或弧的图

  稠密图:图的边或弧很多

8.权:与图的边或弧相关的数

  网:带权的图

9.邻接点:假若顶点v和顶点w之间存在一条边,那么v和w互为邻接点

10.度:无向图中,与其相关联的边的数目

  入度:(有向图)以顶点v为头的弧的数目

  出度:(有向图)以顶点v为尾的弧的数目

11.路径长度:沿路径边的数目或沿路径各边权值之和

    回路:第一个顶点和最后一个顶顶点相同的路径

    简单路径:序列中顶点不重复出现的路径

    简单回路:除了第一个顶点和最后一个顶点外,其余顶点不重复出现的回路

12.连通:无向图中如果从顶点V到顶点W有一条路径,则说V和W是连通的

  连通图:无向图中任意两个顶点都是连通的

  连通分量:无向图中的极大连通子图

  强连通分量:有向图中的极大强连通子图

13.生成树:一个极小连通子图,它含有图中全部顶点,但只有足以构成一棵树的n一1条边

二.图的存储结构

2.1.图的数组(邻接矩阵)存储表示

2.1.1图的邻接矩阵表示法的特点

·对于无图

 邻接矩阵一定是一个对称矩阵

 行(列)非零元素个数,表示度

·对于有向图:

 矩阵不一定是一个对称矩阵

行非零元素个数,表示出度

·列非零元素个数,表示入度

2.1.2应用

通过邻接矩阵判定任意两个顶点之间是否有边相连

2.邻接表

是图的一种链式存储结构

特点

无向图中顶点VI的度为第1个单链表中的结点

有向图中

顶点Vi的出度为第1个单链表中的结点个

顶点Vi的入度为整个单链表中邻接点城#

值是的结点个数

逆邻接表:有向图中对每个结点建立以Vi为头

的弧的单链表

3.十字链表

4.邻接多重表

三.图的遍历

3.1.深度优先搜索

3.1.1连通图

3.1.2非连通图

3.2.广度优先搜索

四.应用

4.1.图的连通性问题

4.1.1无向图的连通分量和生成树

4.1.2有向图的强连通分量

4.1.3最小生成树

4.1.4关节点和重连通分量

4.2有向无环图

4.3拓扑排序

4.4关键路径

4.5最短路径

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

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

相关文章

02-单片机商业项目编程,从零搭建低功耗系统设计

一、本文内容 上一节《01-单片机商业项目编程&#xff0c;从零搭建低功耗系统设计-CSDN博客》已经对事件驱动原理有个基本了解&#xff0c;本节主要就是如何将事件写的更规范&#xff0c;而不是用t_flag这样的标记&#xff0c;写多了可读性也不强&#xff1b;本节结尾总结将提出…

【探索Java编程:从入门到入狱】Day5

&#x1f36c; 博主介绍&#x1f468;‍&#x1f393; 博主介绍&#xff1a;大家好&#xff0c;我是 hacker-routing &#xff0c;很高兴认识大家~ ✨主攻领域&#xff1a;【渗透领域】【应急响应】 【Java、PHP】 【VulnHub靶场复现】【面试分析】 &#x1f389;点赞➕评论➕收…

《ESP8266通信指南》13-Lua 简单入门(打印数据)

往期 《ESP8266通信指南》12-Lua 固件烧录-CSDN博客 《ESP8266通信指南》11-Lua开发环境配置-CSDN博客 《ESP8266通信指南》10-MQTT通信&#xff08;Arduino开发&#xff09;-CSDN博客 《ESP8266通信指南》9-TCP通信&#xff08;Arudino开发&#xff09;-CSDN博客 《ESP82…

驱动比例线圈功率放大器

驱动比例线圈功率放大器是一种用于控制比例电磁铁的电流大小实现被控设备的位移&#xff0c;采用高性能的嵌入式32位微处理器作为运算核心&#xff0c;这些微处理器具有高速指令运行能力&#xff0c;电源24VDC驱动&#xff0c;输入指令兼容性强&#xff0c;输出电流大小可调&am…

云打印怎么保护用户的隐私?

随着互联网的发展&#xff0c;在当下的网络环境下&#xff0c;用户的隐私越来越难以保证安全。特别是对于打印业务来说&#xff0c;盗取用户文件、转卖客户信息的内容时有发生。那么我们作为出色的云打印服务商&#xff0c;该如何保证用户的隐私呢&#xff1f;今天就来给大家介…

正点原子Linux学习笔记(五)FrameBuffer 应用编程

FrameBuffer 应用编程 19.1 什么是 FrameBuffer19.2 LCD 的基础知识19.3 LCD 应用编程介绍使用 ioctl()获取屏幕参数信息使用 mmap()将显示缓冲区映射到用户空间 19.4 LCD 应用编程练习之 LCD 基本操作19.5 LCD 应用编程练习之显示 BMP 图片在 LCD 上显示 BMP 图像在开发板上测…

Java的BIO/NIO/AIO

1. Java中的BIO、NIO和AIO的基本概念及其主要区别 BIO (Blocking I/O): 传统的同步阻塞I/O模型。每个连接创建成功后都需要一个线程来处理&#xff0c;如果连接没有数据可读&#xff0c;则线程会阻塞在读操作上。这种模型简单易理解&#xff0c;但在高并发环境下会消耗大量系统…

【excel】数据非数值导致排序失效

场景 存在待排序列的数值列&#xff0c;但排序失效&#xff0c;提示类型有问题&#xff1a; 解决 选中该列&#xff0c;数据→分列 而后发现提示消失&#xff0c;识别为数字&#xff0c;可正常排序。

ERROR 1045 (28000) Access denied for user ‘root‘@‘IP‘(using password YES/NO)

查看权限 要查看MySQL用户的权限&#xff0c;您可以使用SHOW GRANTS语句。这将列出用户的权限&#xff0c;包括授予的权限和可以授予其他用户的权限。 以下是查看当前用户权限的SQL命令&#xff1a; SHOW GRANTS; 如果您想查看特定用户的权限&#xff0c;可以使用以下命令&…

【漏洞复现】金和OA FileDownLoad接口处存在任意文件读取漏洞

免责声明&#xff1a;文章来源互联网收集整理&#xff0c;请勿利用文章内的相关技术从事非法测试&#xff0c;由于传播、利用此文所提供的信息或者工具而造成的任何直接或者间接的后果及损失&#xff0c;均由使用者本人负责&#xff0c;所产生的一切不良后果与文章作者无关。该…

销售订单分析表-CX_SY_CONVERSION_NO_NUMBER异常

销售订单分析表-CX_SY_CONVERSION_NO_NUMBER异常 这里记录一次发生过的异常报错&#xff0c;和找到原因的过程&#xff1a;

Springboot+Vue项目-基于Java+MySQL的流浪动物管理系统(附源码+演示视频+LW)

大家好&#xff01;我是程序猿老A&#xff0c;感谢您阅读本文&#xff0c;欢迎一键三连哦。 &#x1f49e;当前专栏&#xff1a;Java毕业设计 精彩专栏推荐&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb; &#x1f380; Python毕业设计 &…

华为OD机试 - 计算三叉搜索树的高度 - 二叉树(Java 2024 C卷 100分)

华为OD机试 2024C卷题库疯狂收录中&#xff0c;刷题点这里 专栏导读 本专栏收录于《华为OD机试&#xff08;JAVA&#xff09;真题&#xff08;A卷B卷C卷&#xff09;》。 刷的越多&#xff0c;抽中的概率越大&#xff0c;每一题都有详细的答题思路、详细的代码注释、样例测试…

每日Attention学习1——Parallel Aggregation Pyramid Pooling Module

模块出处 [CVPR 23] [link] [code] PIDNet: A Real-time Semantic Segmentation Network Inspired by PID Controllers 模块名称 Parallel Aggregation Pyramid Pooling Module (PAPPM) 模块作用 多尺度特征提取&#xff0c;更大感受野 模块结构 模块代码 import torch imp…

C++聊天服务器数据库创建

创建数据库chat show databases&#xff1a;展示所有的数据库 create database chat&#xff1a;创建一个数据库chat use chat&#xff1a;使用数据库 创建表User、Friend、AllGroup、GroupUser、OfflineMessage 表User包含&#xff1a;用户id、用户名、用户密码、当前登录…

jsp驾校管理系统Myeclipse开发mysql数据库web结构java编程计算机网页项目

一、源码特点 JSP 驾校管理系统 是一套完善的web设计系统&#xff0c;对理解JSP java编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统采用serlvetdaobean mvc 模式&#xff0c;系统主要采用B/S模式开发。开发环境为TOMCAT7.0,Myeclipse8.5开发…

二叉树习题汇总

片头 嗨&#xff01;大家好&#xff0c;今天我们来练习几道二叉树的题目来巩固知识点&#xff0c;准备好了吗&#xff1f;Ready Go ! ! ! 第一题&#xff1a;二叉树的最大深度 解答这道题&#xff0c;我们采用分治思想 1. 递归子问题&#xff1a;左子树的高度和右子树的高度 …

绿盟之旅——一段安全实习结束

去年&#xff0c;因为着急找实习&#xff0c;拿着简历就开始海投&#xff0c;当时想的是有人让我去就谢天谢地了&#xff0c;第一个约我面试的就是绿盟&#xff0c;也很顺利的通过了面试&#xff0c;当时让我选择在上海还是北京&#xff0c;我选择的是上海&#xff0c;因为学校…

热红外相机图片与可见光图片配准教程

一、前言 图像配准是一种图像处理技术&#xff0c;用于将多个场景对齐到单个集成图像中。在这篇文章中&#xff0c;我将讨论如何在可见光及其相应的热图像上应用图像配准。在继续该过程之前&#xff0c;让我们看看什么是热图像及其属性。 二、热红外数据介绍 热图像本质上通…

高薪!【YesPMP】众包平台5月9日最新外包项目

【YesPMP】众包平台5月9日最新外包项目&#xff0c;感兴趣的小伙伴&#xff0c;可进入平台参与竞标&#xff0c;竞标后与项目方直接与联系&#xff0c;双方直接对接。 1.查看项目&#xff1a;go编写的协议网关成品代码(支持modbus,knx等) http:// https://www.yespmp.com/proj…