图的存储结构之边集数组
说明:边集数组是由两个一维数组构成。一个是存储顶点的信息;另一个是存储边的信息。这个边数组每个数据元素由一条边的起点下标(begin)、终点下标(end)和权(weight)组成。
边集数组结构:
顶点表结构:(用来存储顶点信息)
typedef struct VertexNode4 /*顶点表结点*/
{VerterType data;/*数据域*/
}vexs4[MAX];
表现形式:
性质:如上图所示,边集数组关注的是边的集合,在边集数组中要查找一个顶点的度需要扫描整个边数组,效率并不高。
因此它更适合对边依次进行处理的操作,而不适合对顶点相关的操作。
代码示例:
//以下是图的边集数组表示法
typedef struct VertexNode4 /*顶点表结点*/
{VerterType data;/*数据域*/}vexs4[MAX];/*边数组结构*/
typedef struct edges4
{int begin;/*存储起点的下标*/int end;/*存储终点的下标*/int weight;/*权值*/
}Edges4[MAX];/*图的边集数组存储结构*/
typedef struct graph4
{Edges4 edg4; /*边表结点结构*/vexs4 Node4; /*顶点表结点结构*/int numVertexes; /*图中当前的顶点数*/int numEdges; /*图中当前的边数*/
}graph4;
extern void CreateGraph4(graph4* g);
void CreateGraph4(graph4* g)
{int i=0, j=0, k=0, w=0;printf("请输入顶点数和边数:\n");scanf_s("%d,%d", &g->numVertexes, &g->numEdges,4); //输入顶点数和边数getchar(); //可以获取回车符printf("请输入顶点信息:\n");//获取顶点数组信息for (i = 0; i < g->numVertexes; i++) {scanf_s("%c", &g->Node4[i].data,5); //输入顶点信息}getchar(); //可以获取回车符//获取边数组for (k = 0; k < g->numEdges; k++){printf("输入边<vi,vj>上的下标i,下标j和w的值:\n");scanf_s("%d,%d,%d", &i, &j, &w,4);getchar();g->edg4[k].begin = i; //输入边的起点g->edg4[k].end = j; //输入边的终点g->edg4[k].weight = w; //两条边的权值}
}
int main(void)
{graph4 gra;CreateGraph4(&gra);system("pause");return 0;
}
通过变量的值就可以画出图形结构。
图的存储结构之边集数组相关推荐
- 大话数据结构二十二:图的存储结构之边集数组
1. 边集数组简介: 边集数组由两个一维数组构成: 1.) 一个存储顶点信息. 2.) 一个存储边的信息,这个边数组每个数据元素由一条边的起点下标(begin).终点下标(end).和权(weight ...
- 数据结构之图的存储结构一及其实现
图的存储结构 由于图的结构比较复杂,任意两个顶点之间都可能存在联系,因此无法以数据元素在存储区中的物理位置来表示元素之间的关系,即图没有顺序映像的存储结构,但可以借助数组的数据类型表示元素之间的关系. ...
- 【数据结构——图和图的存储结构】
目录 一.图的定义和基本术语(Graph) (一)图的定义 (二)图的基本术语 一.图的存储结构 (一)邻接矩阵(Adjacency Matrix) 1.无向图的邻接矩阵 2.有向图的邻接矩阵 3.网 ...
- 图——图的存储结构(邻接矩阵和邻接表法)
图的五种存储结构: 1.图的邻接矩阵表示法 图是由顶点和边或弧两部分组成.图的邻接矩阵(Adjacency Matrix)存储方式是用两个数组表示图,一个一维数组存储图中的顶点信息,一个二维数组(邻接 ...
- 图——基本的图算法(一)图的存储结构
图--基本的图算法(一)图的存储结构 1. 图的存储结构概述 对于图G=(V, E)来说,可以有两种标准的表示方法,一个是邻接矩阵,另一个是邻接链表,这两种方法都可以表示有向图和无向图.除此之外,图的 ...
- 数据结构——图:极大小连通子图、图的存储结构、图的遍历
图的基本概念: 极大连通子图就是连通分量. 极大连通子图与连通分量在无向图(undirected graph)这个前提下是等同的概念. 极小连通子图: 减去任何一条边就不再连通. 不管树还是二叉树:n ...
- 数据结构之图的存储结构:邻接矩阵法
图的存储结构:邻接矩阵法 邻接矩阵法: 邻接矩阵的定义: 邻接矩阵存储无向图: 邻接矩阵存储有向图: 邻接矩阵存储网: 邻接矩阵法的性质: 邻接矩阵法的代码实现: 矩阵运算A的n次幂的含义: 性能分析 ...
- 数据结构——图(存储结构)
数据结构--图 图的定义和基本术语 图的类型定义 图的存储结构 数组(邻接矩阵表示法) 网(即有权图)的邻接矩阵表示法 邻接表 邻接表表示法(链式) 图的邻接表存储表示 采用邻接表表示法创建无向网 邻 ...
- 图的存储结构——邻接表法
图的存储结构--邻接表法 一.邻接表 由顶点表和边表构成,顶点表由顶点域(data)和指向第一条邻接边的指针(firstarc)构成,边表(邻接表)结点由邻接点域(adjvex)和指向下一条邻接边 ...
- 数据结构考研笔记(十五)——图的存储结构邻接矩阵、邻接表、十字链表、临界多重表的概念
图的存储结构 1.邻接矩阵 1.1有向图 1.2无向图 2.邻接表法 2.1有向图边表 2.2无向图边表 3.十字链表 4.临界多重表 十字链表与临界多重表 1.邻接矩阵 邻接矩阵法结点数为n的图G ...
最新文章
- leetcode算法题解(Java版)-9-N皇后问题
- 拒绝从入门到放弃_《鸟哥的 Linux 私房菜 — 基础学习篇(第三版)》必读目录
- redis服务器信息统计,利用Redis统计网站在线活跃用户的方法
- c++构造函数详解(转)
- citrix 产品上线
- Matlab题目及答案,Matlab考试试题库+答案解析.doc
- 数据包络分析法(DEA)_1
- C++ | 虚函数表内存布局
- 阿里云服务器安装MySql8.0.26
- 洛谷 【入门1】顺序结构 P5708 【深基2.习2】三角形面积
- 【Orientation】详解Android中的屏幕方向
- 易生信:临床基因组学数据分析实战(11月12-14开课)
- [spark] spark推测式执行
- linux文件扫描并打印,Linux办公一条龙—Linux中扫描、打印的实现
- java excel 批注_Java 添加、修改、读取、复制、删除Excel批注
- php---一周内免登录
- 随机梯度下降(Stochastic gradient descent)
- 恩与爱是扯不开的 —— 李安
- 增益自适应PI控制器+死区过滤器(Smart PLC向导PID编程应用)
- 申宝公司-探底回升再续升势
热门文章
- 数据结构与算法学习---数据结构篇(线性表)(默然回首,夯实基础)
- MCS51 系列单片机的中央处理器(CPU)
- 使用BaseMap绘制地图它不香么
- krait和kryo_HBase和Kryo混合使用时出现的jar包冲突
- conventional-changelog 参数含义
- 马斯克遭黑客组织“匿名者”威胁,怒斥其为自恋狂
- gba口袋妖怪c语言源代码,查看“精灵宝可梦 火红·叶绿”的源代码
- HDFS配置之NN-SNN-DN
- Cisco Viptela SD-WAN实验
- 学习笔记-SNN用STDP法的MNIST数据集识别代码深入阅读