5.1图的物理结构与基本操作

news2024/10/2 10:39:18

1.图的物理结构

一.邻接矩阵存储稠密图

在这里插入图片描述

用于存储无向图,有向图,总之各类图
优缺点:适合存储稠密图,属于上下三角矩阵,有重复
复杂度:O(V),空间O(V^2)

性质:阶乘得到某一点的值,为顶点到另外一个顶点的长度为阶乘数的数目,
很容易类比得到

//存储无向图
#define MaxVertexNum 100
typedef struct{
    char Vex[MaxVertexNum];//顶点数
    int Edge[MaxVertexNum][MaxVertexNum];//邻接矩阵
    int vexnum,arcnum;//顶点数,弧数
}MGraph;
//存储带权图
#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|E|,因为有重复,比较适合存储稀疏图
优缺点:对于有向图不友好,整体时间复杂度 O(|V|+2|E|)

//1.顶点结构
typedef struct VNode{
    VertexType data; //顶点的信息
    ArcNode *first; //第一条边/弧
}VNode,AdjList[MaxVertexNum];
//2.边
typedef struct{
int adjvex;
struct ArcNode *next;
//InfoType info; //边的权值
}ArcNode;
//3.邻接表的结构
typedef struct{
    AdjList vertices;
    int vexnum,arcnum;
}ALGraph;

三.十字链表存储有向图

示意图

代码实现:
代码实现十字链表法

//边界点结构体
struct Node{
    int from;
    int to;
    struct Node* in_pointer;
    struct Node* out_pointer;
}
//十字链表法结构
struct Cross_List
{
    int vex;
    int edge;
    struct{
        char hede_ele;
        struct Node* in_pointer;
        struct Node* out_pointer;
    }
}

四. 临接多重表存储无向图

在这里插入图片描述

2.图的基本操作

主要实现方式再于邻接表与邻接矩阵,并且可以分析判断时间复杂度

1.判断边是否存在

Adjacent(G,x,y);

2.列出图结点邻接的边

Neighbors(G,x);

3.插入新节点

InsertVertex(G,x);

4.删除图的某一顶点

DeleteVertex(G,x);

5.添加图的一条边

AddEdge(G,x,y);

6.(重要)找到图中顶点的第一个邻接点

FirstNeighbor(G,x);

7.(重要)找到图中除y的下一个邻接点

NextNeighbor(G,x,y);

8.获取某条边的权值

Get_edge_value(G,x,y);

9.设置某条边的权值

Set_edge_value(G,x,y,v);

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

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

相关文章

C语言入门级小游戏——三子棋

文章目录 游戏文件的创建游戏菜单重头戏,游戏正式开始棋盘的创建数据清空打印棋盘 玩家下棋电脑下棋输赢的判断1.赢2.平局,游戏继续 代码展示 今天我们写一个小游戏——三子棋来增加我们对编程的兴趣, 希望这篇文章对友友们有帮助! 游戏文件的…

测试进阶-软件测试的分类

目录 按照测试对象划分界面测试 *可靠性测试如何进行可靠性测试 容错性测试文档测试兼容性测试 *易用性测试 *安装卸载测试 *安全测试性能测试内存泄漏测试 按照是否查看代码划分黑盒测试白盒测试灰盒测试 按照开发阶段划分测试金字塔单元测试集成测试系统测试回归测试冒烟测试…

行政前台快递管理软件使用教程

行政前台快递如何管理,是每个行政人员永远避不开的话题。 不管是从行政相关的论坛中,还是从身边从事行政相关工作的亲友口中,亦或是某些公司前台堆积的快递,我们都能看到、听到行政相关人员抱怨“行政前台快递管理为什么这么难”…

办公环境监测与智能控制软硬件全套解决方案

心理学研究表明,良好的工作环境对员工的身心健康及提高工作效率有积极影响。 不仅如此,近几年国家尤其提倡“碳中和”与“碳达峰”政策,并提出“节约能源、美化环境”的重要目标。以“企业数字化转型”为根本,一切事物都在朝着智能…

因子图优化

最大后验概率估计问题 我们常将状态估计问题建模为最大后验估计(MAP)。之所以命名为最大后验估计,是因为它在给定了观测 Z \bm Z Z的情况下,最大化状态 X \bm X X的后验概率密度 p ( X ∣ Z ) p(\bm X|\bm Z) p(X∣Z) X M A P …

迅为RK3568开发板驱动教程更新了兄弟们,思路更科学

驱动视频全新升级,并持续更新~更全,思路更科学,入门更简单。 迅为基于iTOP-RK3568开发板进行讲解,本次更新内容为第九期,主要讲解设备模型,共计29讲。 教程观看链接:B站搜索-迅为电子 课程目录…

Mysql——SUM()函数

目录 一、前期准备工作 新建表如下: 插入的数据如下: 二、SUM()函数的用法 1.求和,返回指定列的总和 SUM 函数可以对单个列求和,也可以对多个列运算后求和,计算中忽略 NULL 值 SUM函数与分组 GROUP BY 使用&a…

MySQL调优系列(五)——索引详解

一、索引的定义 数据库索引就像是书前面的目录,能加快数据库的查询速度。 索引是一种数据结构,用于帮助我们在大量数据中快速定位到我们想要查找的数据。 是一种帮助MySQL高效获取数据的数据结构。 ps:大多数情况下,索引查询都是…

计算机图形学 | 实验九:纹理贴图和天空盒

计算机图形学 | 实验九:纹理贴图和天空盒 计算机图形学 | 实验九:纹理贴图和天空盒实验概述顶点数据立方体顶点数据天空盒顶点数组 纹理载入创建纹理纹理读取纹理绑定 使用纹理立方体着色器顶点着色器片元着色器 天空盒着色器顶点着色器片元着色器 立方体…

管好【SD-WEBUI】中大量的模型:模型信息预览插件(Part.3)

文章目录 (零)前言(一)模型预览图(一)模型信息预览插件(Model Preview)(1.1)示例(Markdown描述提示词备注)(1.2&#xff0…

AI大模型驱动下,数字虚拟人与虚拟场景为高等学院建设带来何种改变?

继今年年初美国人工智能研究实验室OpenAI推出ChatGPT(一种人工智能驱动的自然语言处理工具)之后一段时间里,阿里、百度、商汤等一众国内IT巨头纷纷发布了各自的AI大模型(可浅理解为用于AI学习用的超大量数据)&#xff…

运动控制轴单位设置(H5U PLC)

H5U PLC运动控制相关应用,请参看下面博客文章 10轴总线控制(汇川H5UPLC+总线伺服编程应用)_RXXW_Dor的博客-CSDN博客H5UPLC控制总线伺服的详细配置过程,可以参看下面的文章链接:汇川H5U PLC通过EtherCAT总线控制SV660N和X3E伺服_ethercat总线伺服如何控制_RXXW_Dor的博客-C…

使用MFT进行加密文件传输的7个好处

至少,托管文件传输(MFT)解决方案是一种产品,它包含入站和出站文件传输的所有方面,同时使用行业标准的网络协议和无缝加密。它可以从单个集中管理点在您的网络,系统,应用程序,贸易伙伴…

2024王道数据结构考研丨第二章:线性表

2024王道数据结构考研笔记专栏将持续更新,欢迎 点此 收藏,共同交流学习… 文章目录 第二章:线性表2.1线性表的定义2.2顺序表的定义2.2.1静态分配:2.2.2动态分配 2.2顺序表的基本操作1.插入操作 :平均时间复杂度O(n)2.删除操作&…

小白怎么入门网络安全?看这篇文章就够啦!(2023最新)

作为一名从业多年的网络安全工程师,我了解到,网络安全是一个高度技术密集的领域,它涵盖了网络架构、网络协议、操作系统、编程语言、密码学、安全漏洞、入侵检测和应急响应等多个方面。如果你是零基础的小白,想要进入这个行业&…

5个设计师必备的页面设计工具!

在现代科技飞速发展的时代,设计软件的选择越来越多。本文将盘点 5 大主流页面设计工具其中,即时设计是一款协同页面设计工具,提供在线编辑和保存等功能,同时拥有免费设计素材和在线留言评论等实用功能。它的云端协作设计使得复杂的…

街电入局两轮电动车充电,讲出了“跃迁”式的新故事?

以共享单车为起点,中国的共享经济正蓬勃发展。国家信息中心披露的数据显示,2022年,中国共享经济市场交易规模约38320亿元,同比增长约3.9%。 虽然同属共享经济,但与部分共享单车企业嫁入“豪门”全身而退不同&#xff…

【接口自动化测试】cookie绕过验证码自动登录?(保持登录状态)

目录 前言 cookie工作原理 cookie绕过登录 【自动化测试工程师学习路线】 1、自动化测试必备Python编程内容​ 2、Web UI 自动化测试基础内容​ 3、Web UI 自动化测试实战内容​ 4、APP UI 自动化测试基础内容​ 5、APP UI 自动化测试实战内容​ 6、API 接口自动化测…

实验四 面向对象分析与设计——UML类图与时序图

一、实验目的: 掌握面向对象分析中静态结构模型与动态行为模型的基本思想。学会识别系统中的类、类的属性和操作以及类之间的关系,掌握UML类图的绘制方法。了解时序图的作用和组成元素,掌握UML时序图的绘制方法。 二、实验仪器及实验环境&a…

ATA-2000系列高压放大器在压电陶瓷中的典型应用

ATA-2000系列高压放大器在压电陶瓷中的典型应用 压电陶瓷介绍: 压电陶瓷是一种能够将机械能和电能互相转换的陶瓷材料。压电陶瓷除具有压电性外,还具有介电性、弹性等,已被广泛应用于医学成像、声传感器、声换能器、超声马达等。压电陶瓷利用其材料在机…