说明:边集数组是由两个一维数组构成。一个是存储顶点的信息;另一个是存储边的信息。这个边数组每个数据元素由一条边的起点下标(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. 边集数组简介: 边集数组由两个一维数组构成: 1.) 一个存储顶点信息. 2.) 一个存储边的信息,这个边数组每个数据元素由一条边的起点下标(begin).终点下标(end).和权(weight ...

  2. 数据结构之图的存储结构一及其实现

    图的存储结构 由于图的结构比较复杂,任意两个顶点之间都可能存在联系,因此无法以数据元素在存储区中的物理位置来表示元素之间的关系,即图没有顺序映像的存储结构,但可以借助数组的数据类型表示元素之间的关系. ...

  3. 【数据结构——图和图的存储结构】

    目录 一.图的定义和基本术语(Graph) (一)图的定义 (二)图的基本术语 一.图的存储结构 (一)邻接矩阵(Adjacency Matrix) 1.无向图的邻接矩阵 2.有向图的邻接矩阵 3.网 ...

  4. 图——图的存储结构(邻接矩阵和邻接表法)

    图的五种存储结构: 1.图的邻接矩阵表示法 图是由顶点和边或弧两部分组成.图的邻接矩阵(Adjacency Matrix)存储方式是用两个数组表示图,一个一维数组存储图中的顶点信息,一个二维数组(邻接 ...

  5. 图——基本的图算法(一)图的存储结构

    图--基本的图算法(一)图的存储结构 1. 图的存储结构概述 对于图G=(V, E)来说,可以有两种标准的表示方法,一个是邻接矩阵,另一个是邻接链表,这两种方法都可以表示有向图和无向图.除此之外,图的 ...

  6. 数据结构——图:极大小连通子图、图的存储结构、图的遍历

    图的基本概念: 极大连通子图就是连通分量. 极大连通子图与连通分量在无向图(undirected graph)这个前提下是等同的概念. 极小连通子图: 减去任何一条边就不再连通. 不管树还是二叉树:n ...

  7. 数据结构之图的存储结构:邻接矩阵法

    图的存储结构:邻接矩阵法 邻接矩阵法: 邻接矩阵的定义: 邻接矩阵存储无向图: 邻接矩阵存储有向图: 邻接矩阵存储网: 邻接矩阵法的性质: 邻接矩阵法的代码实现: 矩阵运算A的n次幂的含义: 性能分析 ...

  8. 数据结构——图(存储结构)

    数据结构--图 图的定义和基本术语 图的类型定义 图的存储结构 数组(邻接矩阵表示法) 网(即有权图)的邻接矩阵表示法 邻接表 邻接表表示法(链式) 图的邻接表存储表示 采用邻接表表示法创建无向网 邻 ...

  9. 图的存储结构——邻接表法

    图的存储结构--邻接表法 一.邻接表 ​ 由顶点表和边表构成,顶点表由顶点域(data)和指向第一条邻接边的指针(firstarc)构成,边表(邻接表)结点由邻接点域(adjvex)和指向下一条邻接边 ...

  10. 数据结构考研笔记(十五)——图的存储结构邻接矩阵、邻接表、十字链表、临界多重表的概念

    图的存储结构 1.邻接矩阵 1.1有向图 1.2无向图 2.邻接表法 2.1有向图边表 2.2无向图边表 3.十字链表 4.临界多重表 十字链表与临界多重表 1.邻接矩阵 邻接矩阵法结点数为n的图G ...

最新文章

  1. leetcode算法题解(Java版)-9-N皇后问题
  2. 拒绝从入门到放弃_《鸟哥的 Linux 私房菜 — 基础学习篇(第三版)》必读目录
  3. redis服务器信息统计,利用Redis统计网站在线活跃用户的方法
  4. c++构造函数详解(转)
  5. citrix 产品上线
  6. Matlab题目及答案,Matlab考试试题库+答案解析.doc
  7. 数据包络分析法(DEA)_1
  8. C++ | 虚函数表内存布局
  9. 阿里云服务器安装MySql8.0.26
  10. 洛谷 【入门1】顺序结构 P5708 【深基2.习2】三角形面积
  11. 【Orientation】详解Android中的屏幕方向
  12. 易生信:临床基因组学数据分析实战(11月12-14开课)
  13. [spark] spark推测式执行
  14. linux文件扫描并打印,Linux办公一条龙—Linux中扫描、打印的实现
  15. java excel 批注_Java 添加、修改、读取、复制、删除Excel批注
  16. php---一周内免登录
  17. 随机梯度下降(Stochastic gradient descent)
  18. 恩与爱是扯不开的 —— 李安
  19. 增益自适应PI控制器+死区过滤器(Smart PLC向导PID编程应用)
  20. 申宝公司-探底回升再续升势

热门文章

  1. 数据结构与算法学习---数据结构篇(线性表)(默然回首,夯实基础)
  2. MCS51 系列单片机的中央处理器(CPU)
  3. 使用BaseMap绘制地图它不香么
  4. krait和kryo_HBase和Kryo混合使用时出现的jar包冲突
  5. conventional-changelog 参数含义
  6. 马斯克遭黑客组织“匿名者”威胁,怒斥其为自恋狂
  7. gba口袋妖怪c语言源代码,查看“精灵宝可梦 火红·叶绿”的源代码
  8. HDFS配置之NN-SNN-DN
  9. Cisco Viptela SD-WAN实验
  10. 学习笔记-SNN用STDP法的MNIST数据集识别代码深入阅读