数据结构简记✏️ | 图

一、图(Graph)

  • 图的定义:由有限顶点集 V V V和有限边集 E E E组成,记为 G = ( V , E ) G=(V,E) G=(V,E)其中顶点数 ∣ V ∣ |V| V记为 n n n,边数 ∣ E ∣ |E| E记为 e e e。🍗
  • 有向图 < v , w > ∈ E <v,w>\in E <v,w>E表示由顶点 v v v指向顶点 w w w有向边(弧),如图🍞
  1. 无权
  2. 带权:🍰
  • 无向图 ( v , w ) ∈ E (v,w)\in E (v,w)E表示由顶点 v v v指向顶点 w w w无向边(边),如图
  1. 无权:🍨
  2. 带权

二、图的部分术语

  • 子图:对于两个图 G = ( V , E ) , G ′ = ( V ′ , E ′ ) G=(V,E),G^{'}=(V^{'},E^{'}) G=(V,E),G=(V,E),如果 V ′ ∈ V , E ′ ∈ E V^{'}\in V,E^{'}\in E VV,EE,则称 G ′ G^{'} G G G G子图
  • 完全图:包含所有可能的边的图称为完全图无向完全图 n ( n − 1 ) / 2 n(n-1)/2 n(n1)/2条边,有向完全图 n ( n − 1 ) n(n-1) n(n1)条弧。🍯
  • 邻接顶点:在无向图中,若存在边 ( v , w ) (v,w) (v,w),则称 v , w v,w v,w互为邻接顶点;在有向图中,若存在弧 < v , w > <v,w> <v,w>,则称 w w w v v v的邻接顶点,反之不然。

三、图的存储结构

1. 邻接数组

  • 结构图
  • 类型定义
#define UNVISITED 0
#define VISITED 1
#define INFINITY MAXINT//计算机允许的整数最大值
typedef enum{DG,DN,UDG,UDN}GraphKind;//图的4种类型:有向图,有向带权图,无向图,无向带权图
typedef struct {
	VexType *vexs;//顶点数组,VexType是顶点类型,由用户定义
	int **arcs;//关系数组,对无权图,用0和1表示是否相邻;对带权图,则有权值或INFINITY
	int n,e;//顶点数和边(弧)数
	GraphKind kind;//图的类型
	int *tags;//标志数组,用于图的遍历中标记顶点是否已被访问
}MGraph;//图的邻接数组类型

2. 邻接表

  • 结构图
  1. 无权
  2. 带权
  • 类型定义:🍭
typedef struct AdjVexNode {
	int adjvex;//邻接顶点在顶点数组中的位序
	struct AdjVexNode *nextArc;//指向下一个邻接顶点(下一条边或弧)
	int info;//存储边(弧)的相关信息(如带权图的权值)
}AdjVexNode,*AdjVexNodeP;//邻接链表的结点类型
typedef struct VexNode {
	VexType data;//顶点值
	struct AdjVexNode *firstArc;//邻接链表的头指针
}VexNode;//顶点数组的元素类型
typedef struct {
	VexNode *vexs;//顶点数组,用于存储顶点信息
	int n,e;//顶点数,边(弧)数
	GraphKind kind;//图的类型
	int *tags;//标志数组,用于图的遍历中标记顶点是否已被访问
}ALGraph;//图的邻接表类型
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
code_001 | [片读取与显示](python/code_001/opencv_001.py) | ✔ code_002 | [片灰度化](python/code_002/opencv_002.py) | ✔ code_003 | [像创建与赋值](python/code_003/opencv_003.py) | ✔ code_004 | [像像素读写](python/code_004/opencv_004.py) | ✔ code_005 | [像像素算术操作(加减乘除)](python/code_005/opencv_005.py) | ✔ code_006 | [像伪彩色增强](python/code_006/opencv_006.py) | ✔ code_007 | [像像素操作(逻辑操作)](python/code_007/opencv_007.py) | ✔ code_008 | [像通道分离合并](python/code_008/opencv_008.py) | ✔ code_009 | [色彩空间与色彩空间转换](python/code_009/opencv_009.py) | code_010 | [像像素值统计](python/code_010/opencv_010.py) | ✔ code_011 | [像像素归一化](python/code_011/opencv_011.py) | ✔ code_012 | [视频读写](python/code_012/opencv_012.py) | ✔ code_013 | [像翻转](python/code_013/opencv_013.py) | ✔ code_014 | [像插值](python/code_014/opencv_014.py) | ✔ code_015 | [绘制几何形状](python/code_015/opencv_015.py) | ✔ code_016 | [像ROI与ROI操作](python/code_016/opencv_016.py) | ✔ code_017 | [像直方](python/code_017/opencv_017.py) | ✔ code_018 | [像直方均衡化](python/code_018/opencv_018.py) | code_019 | [像直方比较](python/code_019/opencv_019.py) | ✔ code_020 | [像直方反向投影](python/code_020/opencv_020.py) | ✔ code_021 | [像卷积操作](python/code_021/opencv_021.py) | ✔ code_022 | [像均值与高斯模糊](python/code_022/opencv_022.py) | ❣ code_023 | [中值模糊](python/code_023/opencv_023.py) | ✔ code_024 | [像噪声](python/code_024/opencv_024.py) | ✔ code_025 | [像去噪声](python/code_025/opencv_025.py) | ✔ code_026 | [高斯双边模糊](python/code_026/opencv_026.py) | ✔ code_027 | [均值迁移模糊(mean-shift blur)](python/code_027/opencv_027.py) | ✔ code_028 | [像积分算法](python/code_028/opencv_028.py) | ✔ code_029 | [快速的像边缘滤波算法](python/code_029/opencv_029.py) | ✔ code_030 | [自定义滤波器](python/code_030/opencv_030.py) | ✔ code_031 | [Sobel算子](python/code_031/opencv_031.py) | ✔ code_032 | [更多梯度算子](python/code_032/opencv_032.py) | ✔ code_033 | [拉普拉斯算子(二阶导数算子)](python/code_033/opencv_033.py) | ✔ code_034 | [像锐化](python/code_034/opencv_034.py) | ✔ code_035 | [USM 锐化增强算法](python/code_035/opencv_035.py) | ✔ code_036 | [Canny边缘检测器](python/code_036/opencv_036.py) | ❣ code_037 | [像金字塔](python/code_037/opencv_037.py) | ✔ code_038 | [拉普拉斯金字塔](python/code_038/opencv_038.py) | ✔ code_039 | [像模板匹配](python/code_039/opencv_039.py) | ✔ code_040 | [二值像介绍](python/code_040/opencv_040.py) | ✔ code_041 | [基本阈值操作](python/code_041/opencv_041.py) | ✔ code_042 | [像二值寻找法OTSU](python/code_042/opencv_042.py) | code_043 | [像二值寻找法TRIANGLE](python/code_043/opencv_043.py) | ✔ code_044 | [像自适应阈值算法](python/code_044/opencv_044.py) | code_045 | [像二值与去噪](python/code_045/opencv_045.py) | code_046 | [像连通组件寻找](python/code_046/opencv_046.py) | ✔ code_047 | [像连通组件状态统计](python/code_047/opencv_047.py) | ✔ code_048 | [轮廓寻找](python/code_048/opencv_048.py) | ❣ code_049 | [轮廓外接矩形](python/code_049/opencv_049.py) | ❣ code_050 | [轮廓矩形面积与弧长](python/code_050/opencv_050.py) | code_051 | [轮廓逼近](python/code_051/opencv_051.py) | ✔ code_052 | [几何矩计算中心](python/code_052/opencv_052.py) | ✔ code_053 | [使用Hu矩阵实现轮廓匹配](python/code_053/opencv_053.py) | ✔ code_054 | [轮廓圆与椭圆拟合](python/code_054/opencv_054.py) | ✔ code_055 | [凸包检测](python/code_055/opencv_055.py) | code_056 | [直线拟合与极值点寻找](python/code_056/opencv_056.py) | ✔ code_057 | [点多边形测试](python/code_057/opencv_057.py) | ✔ code_058 | [寻找最大内接圆](python/code_058/opencv_058.py) | ✔ code_059 | [霍夫曼直线检测](python/code_059/opencv_059.py) | ✔ code_060 | [概率霍夫曼直线检测](python/code_060/opencv_060.py) | ❣ code_061 | [霍夫曼圆检测](python/code_061/opencv_061.py) | ❣ code_062 | [膨胀和腐蚀](python/code_062/opencv_062.py) | ❣ code_063 | [结构元素](python/code_063/opencv_063.py) | ✔ code_064 | [开运算](python/code_064/opencv_064.py) | code_065 | [闭运算](python/code_065/opencv_065.py) | code_066 | [开闭运算的应用](python/code_066/opencv_066.py) | code_067 | [顶帽](python/code_067/opencv_067.py) | ✔ code_068 | [黑帽](python/code_068/opencv_068.py) | ✔ code_069 | [像梯度](python/code_069/opencv_069.py) | ✔ code_070 | [基于梯度的轮廓发现](python/code_070/opencv_070.py) | code_071 | [击中击不中](python/code_071/opencv_071.py) | ✔ code_072 | [缺陷检测1](python/code_072) | ✔ code_073 | [缺陷检测2](python/code_073/opencv_073.py) | ✔ code_074 | [提取最大轮廓和编码关键点](python/code_074) | ✔ code_075 | [像修复](python/code_075/opencv_075.py) | ✔ code_076 | [像透视变换应用](python/code_076/opencv_076.py) | code_077 | [视频读写和处理](python/code_077/opencv_077.py) | code_078 | [识别与跟踪视频中的特定颜色对象](python/code_078) | ✔ code_079 | [视频分析-背景/前景 提取](python/code_079/opencv_079.py) | ✔ code_080 | [视频分析–背景消除与前景ROI提取](python/code_080) | ✔ code_081 | [角点检测-Harris角点检测](python/code_081) | ✔ code_082 | [角点检测-Shi-Tomas角点检测](python/code_082) | code_083 | [角点检测-亚像素角点检测](python/code_083) | ✔ code_084 | [视频分析-KLT光流跟踪算法-1](python/code_084) | code_085 | [视频分析-KLT光流跟踪算法-2](python/code_085) | code_086 | [视频分析-稠密光流分析](python/code_086) | code_087 | [视频分析-帧差移动对象分析](python/code_087/opencv_087.py) | ✔ code_088 | [视频分析-均值迁移](python/code_088) | code_089 | [视频分析-连续自适应均值迁移](python/code_089) | code_090 | [视频分析-对象移动轨迹绘制](python/code_090) | ✔ code_091 | [对象检测-HAAR级联分类器](python/code_091) | ✔ code_092 | [对象检测-HAAR特征分析](python/code_092) | ✔ code_093 | [对象检测-LBP特征分析](python/code_093/opencv_093.py) | ✔ code_094 | [ORB 特征关键点检测](python/code_094) | code_095 | [ORB 特征描述子匹配](python/code_095) | ✔ code_096 | [多种描述子匹配方法](python/code_096) | code_097 | [基于描述子匹配的已知对象定位](python/code_097) | code_098 | [SIFT 特征关键点检测](python/code_097) | ✔ code_099 | [SIFT 特征描述子匹配](python/code_097) | ✔ code_100 | [HOG 行人检测](python/code_100/opencv_100.py) | ✔ code_101 | [HOG 多尺度检测](python/code_101/opencv_101.py) | code_102 | [HOG 提取描述子](python/code_102/opencv_102.py) | ✔ code_103 | [HOG 使用描述子生成样本数据](python/code_103/opencv_103.py) | ✔ code_104 | [(检测案例)-HOG+SVM 训练](python/code_104/opencv_104.py) | ✔ code_105 | [(检测案例)-HOG+SVM 预测](python/code_105/opencv_105.py) | ✔ code_106 | [AKAZE 特征与描述子](python/code_106) | ✔ code_107 | [Brisk 特征与描述子](python/code_107) | ✔ code_108 | [GFTT关键点检测](python/code_108) | ✔ code_109 | [BLOB 特征分析](python/code_109) | ✔

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值