【数据结构】图的简介(图的逻辑结构)

news2024/11/17 7:19:04

一.引例(哥尼斯堡七桥问题)

        哥尼斯堡七桥问题是指在哥尼斯堡市(今属俄罗斯)的普雷格尔河(Pregel River)中,是否可以走遍每座桥一次且仅一次最后回到起点的问题。这个问题被认为是图论的开端,也是数学史上著名的问题之一。

        欧拉在解决这个问题时,将问题转化为了图论中的欧拉回路问题。他证明了如果一个图中有欧拉回路,那么这个图中每个顶点的度数都是偶数。反之,如果每个顶点的度数都是偶数,那么这个图中就存在欧拉回路

        因此,哥尼斯堡七桥问题的答案是否定的,因为哥尼斯堡的地图中有两个岛屿,这两个岛屿与其他地区相连的桥的数量都是奇数,因此这个图中不存在欧拉回路。

二.图的逻辑结构

1.图的定义

图是由顶点的有穷非空集合和顶点之间边的几何组成。

通常表示为:G=(V,E)

注:

1)G表示一个图

2)V是图G中顶点的集合

3)E是图G中顶点之间边的集合

4)在线性表中,元素的个数可以为0,称之为空表;在树中,元素的个数可以为0,称之为空树;但是在图中,顶点个数不能为0,可以没有边。

2.有向图与无向图

若顶点vi和vj之间的边没有方向,则称这条边为无向边,表示为(vi,vj)

如果图的任意两个顶点之间的边都是无向边,则称该图为无向图。

若顶点vi和vj之间的边有方向,则称这条边为有向边,表示为<vi,vj>

如果图的任意两个顶点之间的边都是有向边,则称该图为有向图。

3.图的基本术语

1)简单图

在图中,若不存在顶点到自身的边,且同一条边不重复出现。

注:数据结构中讨论的都是简单图

2)邻接/依附

无向图中,对于任意两个顶点vi和vj,若存在边(vi,vj),则称顶点vi和顶点vj互为邻接点,同时称边(vi,vj)依附于顶点vi和顶点vj。

有向图中,对于任意两个顶点vi和vj,若存在弧<vi,vj>,则称顶点vi邻接到顶点vj,顶点vj邻接自顶点vi,同时称弧<vi,vj>依附于顶点vi和顶点vj。

3)无向完全图/有向完全图

无向完全图:

在无向图中,如果任意两个顶点之间都存在边,则称该图为无向完全图。

含有n个顶点的无向完全图中边的个数:

n*(n-1)/2

有向完全图:

在有向图中,如果任意两个顶点之间都存在方向相反的两条弧,则称该图为有向完全图。

含有n个顶点的有向完全图中边的个数:

n*(n-1)

4)稀疏图/稠密图

稀疏图:边数很少的图

稠密图:边数很多的图

5)度

无向图:TD(v)

入度:ID(v)

出度:OD(v)

6)度与边数的关系

所有顶点的度之和=边数*2

入度=出度=边数

7)权/网

权:对边赋予的有意义的数值量

(从一个顶点到另一个顶点所需要付出的代价)

网:边上带权的图

8)路径长度

非带权图:边的个数

带权图:各边权之和

9)简单回路

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

10)连通图

图中任意两个顶点都是联通的

11)连通分量

非连通图的极大连通子图

12)强连通图

在有向图中,堆图中任意一对顶点vi和vj(i!=j),若从顶点vi到顶点vj和从顶点vj到顶点vi均有路径

13)生成树

n个顶点的连通图G的生成树是包含G中全部顶点的一个极小连通子图

含有n-1条边

生成树不是唯一的

14)生成森林

在非连通图中,由每个连通分量都可以得到一棵生成树,这些连通分量的生成树就组成了一个非连通图的生成森林。

4.不同结构中逻辑关系的对比

在线性结构中,数据元素之间仅具有线性关系。

在树结构中,结点之间具有层次关系。

在图结构中,任意两个顶点之间都可能有关系。

在线性结构中,元素之间的关系为前驱和后继。

在树结构中,结点之间的关系为双亲和孩子。

在图结构中,顶点之间的关系为邻接。

三.图的抽象数据类型定义

ADT Graph

Data

        顶点的有穷非空集合和边的集合

Operation

初始

销毁

深度优先搜索

广度优先搜索

 

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

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

相关文章

虚拟机上安装docker,并安装flink镜像

1. 安装docker 官网步骤&#xff1a;https://docs.docker.com/engine/install/centos/ sudo yum install -y yum-utils sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo sudo yum install docker-ce docker-ce-cli containerd.…

AppInfo应用信息查看V1.0.2测试版

https://download.csdn.net/download/zzmzzff/88549035

巧用SqlServer数据库实现邮件自动发送功能

使用数据库发送邮件需要三个步骤&#xff0c;配置数据库的邮件服务、编写存储过程、设置SQL作业&#xff0c;接下来开始逐步分享&#xff1a; 配置数据库邮件&#xff1a; 在SqlServer左侧菜单栏中&#xff0c;找到管理页签中数据库邮件选项&#xff1a; 接下来开始配置数据库…

酷柚易汛ERP - 系统初始化操作指南

1、应用场景 重新初始化将会清空系统数据&#xff0c;恢复至新系统初始创建的状态&#xff0c;且不可逆转&#xff0c;请谨慎操作&#xff01; 初始化系统需要验证管理员密码&#xff0c;密码输入正确后即可开始初始化系统

电子学会2023年06月青少年软件编程(图形化)等级考试试卷(一级)真题,含答案解析

青少年软件编程(图形化)等级考试试卷(一级) 一、单选题(共25题,共50分) 1. 看图找规律,请问下图红框中是?( ) A.

基础课8——中文分词

中文分词指的是将一个汉字序列切分成一个一个单独的词。分词就是将连续的字序列按照一定的规范重新组合成词序列的过程。在英文的行文中&#xff0c;单词之间是以空格作为自然分界符的&#xff0c;而中文只是字、句和段能通过明显的分界符来简单划界&#xff0c;唯独词没有一个…

医院数字化LIS(检验信息系统)源码

临床检验信息管理系统&#xff08;LIS&#xff09;是利用计算机连接医疗设备&#xff0c;通过计算机信息处理技术&#xff0c;将医院检验科或实验室的临床检验数据进行自动收集、存储、处理、提取、传输和交换&#xff0c;满足所有授权用户的功能需求。 一、系统概述 1.LIS&am…

在线 sha1 加密

ttmd5 http://www.ttmd5.com/hash.php?type5 qqxiuzi https://www.qqxiuzi.cn/bianma/sha-1.htm jb51 http://tools.jb51.net/password/sha_encode

如何啟用 BitLocker來加密硬盤

概述 什麼是 BitLocker&#xff1a; BitLocker 磁碟機加密是一項本機安全性功能&#xff0c;可對安裝 Windows 的磁碟機上的所有內容進行加密。設備加密透過加密來幫助保護您的資料。只有擁有正確加密金鑰&#xff08;例如個人識別碼&#xff09;的人才能解密它。 它是如何運…

Redis篇---第五篇

系列文章目录 文章目录 系列文章目录前言一、持久化有两种,那应该怎么选择呢?二、怎么使用 Redis 实现消息队列?三、说说你对Redis事务的理解前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这篇文章男女通用,…

阿里云崩了,总结我们从云上搬到线下经历了什么

我们做钢铁行业云的时候&#xff0c;也曾购买过某讯的云服务器。当时某讯做活动&#xff0c;头3年比较便宜&#xff0c;大概买了40台左右云服务器。 但是&#xff0c;3年期间使用云服务器的经历&#xff0c;体验并不好&#xff1a;1.我们云服务器的密码都是随机生成的&#xff…

CSS滚动捕获 scroll-snap-align

CSS滚动捕获 scroll-snap-align 看到 align, 就条件反射想到对齐方式, 嗯猜对了. 不过要先看一下若干名词介绍 scroll-snap-align 指定了盒子的 snap position, 即盒子 snap area 和滚动容器的 snapport 的对齐方式. 这个属性是定义在滚动元素上, 而不是滚动容器上 语法 这个…

IO流-打印流

一&#xff0c;打印流 二&#xff0c;常用方法 三&#xff0c;案例 package Print.sd;import java.io.FileNotFoundException; import java.io.PrintStream; import java.nio.charset.Charset;public class Main {public static void main(String[] args) throws FileNotFound…

Humanoid Robotics Whole Body Control(WBC)全身控制

系列文章目录 文章目录 系列文章目录前言一、ROS —— 什么是全身控制&#xff1f;二、IEEE - RAS三、维也纳工业大学 —— 自动化与控制研究所&#xff08;ACIN&#xff09;四、IIt&#xff08;意大利技术研究院&#xff09; 前言 谷歌的几种解释 一、ROS —— 什么是全身控制…

BUUCTF 被偷走的文件 1

BUUCTF:https://buuoj.cn/challenges 题目描述&#xff1a; 一黑客入侵了某公司盗取了重要的机密文件&#xff0c;还好管理员记录了文件被盗走时的流量&#xff0c;请分析该流量&#xff0c;分析出该黑客盗走了什么文件。 密文&#xff1a; 下载附件&#xff0c;解压得到一个…

在python中os.chdir()的含义以及用法

文章目录 一、os.chdir() 是什么&#xff1f;二、用法注意 一、os.chdir() 是什么&#xff1f; 在Python中&#xff0c;os.chdir() 是 “change directory” 的缩写&#xff0c;意思是改变当前工作目录。这个函数是Python的 os 模块的一部分&#xff0c;允许你更改程序的工作目…

新材料企业ERP有几种?能帮助企业解决哪些问题

在我们的生活当中会遇到各种各样的新材料&#xff0c;这些新材料对应不同的制造工艺、品质检验标准、生产工序、制造设备等。有些新材料企业的营销渠道不止一个&#xff0c;各个营销平台的经营策略和商品维护流程各不相同&#xff0c;而这也使得日常的管理工作量较大。 经过多…

理解Vue源码,从0开始撸了一个简版Vue

vue 的双向绑定、虚拟dom、diff算法等等面试常见问题你可能在几年前就学过了&#xff0c;其中有些人可能看过Vue的源码&#xff0c;了解过Vue是如何实现数据监听和数据绑定这些技术的。不过让从零开始实现一个 vue&#xff0c;你可以吗? 模板语法其实早就存在&#xff0c;在V…

设计模式--模板方法外观模式

模板方法模式 场景&#xff1a;需使用代码方式实现&#xff0c;考完试后&#xff0c;将各个学生的试卷及答案誊抄一份。 假如有两个学生的试卷誊抄完毕. // 学生A public class TestPaperA {// 试题1public void testQuestion1() {System.out.println("问题一:XXXXXXXX…

HIS医疗项目

文章目录 医疗项目简介HIS项目介绍HIS架构解析HIS业务流程图HIS项目架构图 HIS组件解析——服务支撑 内存设置为4G或以上部署NGINX服务部署web安装JDK部署Elasticsearch安装ik中文分词器 部署rabbitmq部署MySQL服务安装MySQL服务建库、授权用户导入数据 部署Redis测试Redis 部署…