首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

图的邻接矩阵存储结构

图的邻接矩阵存储结构 一、知识框架 二、存储方式(这里只讨论邻接矩阵存储方式) 在图的邻接矩阵存储结构中,顶点信息使用一维数组存储,边信息的邻接矩阵使用二维数组存储。...无向图和其对应的邻接矩阵 有向图 三、代码实现 1.头文件AdjMGraph.h 针对的是下面这个有向图 #pragma once //图的邻接矩阵存储结构 #include "SeqList.h...numOfEdges; //边的条数 }AdjMGraph; //图的结构体定义 //初始化 void Initiate(AdjMGraph *G, int n)...,就是邻接矩阵的顶点v行中 从第一个矩阵元素开始的非0且非无穷大的顶点 */ int GetFirstVex(AdjMGraph G, int v) //在图G中寻找序号为v的顶点的第一个邻接顶点 //...,顶点v1的邻接顶点v2的下一个邻接顶点,就是邻接矩阵的顶点 v行中从第v2+1个矩阵元素开始的非0且非无穷大的顶点 */ int GetNextVex(AdjMGraph G, int v1, int

61670
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    图的遍历(上)——邻接矩阵表示

    概述 图作为数据结构书中较为复杂的数据结构,对于图的存储方式分邻接矩阵和邻接表两种方式。在这篇博客中,主要讲述邻接矩阵下的图的深度优先遍历(DFS)与广度优先遍历(BFS)。...---- 广度优先遍历(BFS) BFS 算法的思想是:对一个无向连通图,在访问图中某一起始顶点 v 后,由 v 出发,依次访问 v 的所有未访问过的邻接顶点 w1, w2, w3, …wt;然后再顺序访问...,DFS搜索图,直至图中所有与v0路径相通的顶点都被访问。...3)若该图为非连通图,则图中一定还存在未被访问的顶点,选取该顶点为起点,重复上述DFS过程,直至图中全部顶点均被访问过为止。...stack.push(i); this->isvisited[i] = 1; } } } } ---- 例子 下面的程序所基于的图结构够如下

    96520

    数据结构 图的邻接矩阵

    大家好,又见面了,我是你们的朋友全栈君。 图的邻接矩阵的存储方式是用两个数组来实现的,一个一维数组存储顶点信息,一个二维数组存储线(无向图)或弧(有向图)的信息。...设图G有n个顶点,则邻接矩阵是一个n × n的方阵,定义为: 无向图的邻接矩阵,两个顶点有边则为1,否则,为0;因为是无向图arc[i][j] = arc[j][i],所以矩阵为对称矩阵,对角线为自己到自己的边...设图G有是网图,有n个顶点,则邻接矩阵是一个n × n的方阵,定义为: 无向网图和无向图差不多,就是加了权值,两个顶点之间无边的话距离是∞。 如果是有向图,邻接矩阵就不是对称矩阵了。...下面是邻接矩阵的存储结构: #define MAXVERTEX 100 //图的最大顶点数 #define INFINITY 32767 //用有符号的int最大值表示无穷大 typedef char...vertextype; //定义定点的存储信息为字符型 typedef int arctype; //定义边的权值为int型 //图的邻接矩阵的存储结构 typedef struct {

    65510

    【数据结构】图—图的邻接矩阵存储及度计算

    题目描述 假设图用邻接矩阵存储。...输入图的顶点信息和边信息,完成邻接矩阵的设置,并计算各顶点的入度、出度和度,并输出图中的孤立点(度为0的顶点) --程序要求-- 若使用C++只能include一个头文件iostream;若使用C语言只能...—有向图,U—无向图) 顶点信息 边数 每行一条边(顶点1 顶点2)或弧(弧尾 弧头)信息 输出 每组测试数据输出如下信息(具体输出格式见样例): 图的邻接矩阵 按顶点信息输出各顶点的度(无向图)或各顶点的出度...孤立点的度信息不输出。 图的孤立点。若没有孤立点,不输出任何信息。...outdegree[GetIndex(tail)]++;             indegree[GetIndex(head)]++; 然后如果是无向图的话,需要对称建立邻接矩阵:

    30530

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

    图的邻接矩阵(Adjacency Matrix)存储方式是用两个数组来表示图。一个一维的数组存储图中顶点信息,一个二维数组(称为邻接矩阵)存储图中的边或弧的信息。...设图G有n个顶点,则邻接矩阵是一个n*n的方阵,定义为: ? 我们来看一个实例,图7-4-2的左图就是一个无向图。 ? 我们再来看一个有向图样例,如图7-4-3所示的左图。 ?...在图的术语中,我们提到了网的概念,也就是每条边上都带有权的图叫做网。那些这些权值就需要保存下来。 设图G是网图,有n个顶点,则邻接矩阵是一个n*n的方阵,定义为: ?...下面示例无向网图的创建代码:(改编自《大话数据结构》) #include using namespace std; #define MAXVEX 100/* 最大顶点数,应由用户定义...,可看作边表 */     int numNodes, numEdges;/* 图中当前的顶点数和边数  */ } MGraph; /* 建立无向网图的邻接矩阵表示 */ void CreateMGraph

    4.7K80

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

    大家好,又见面了,我是你们的朋友全栈君。 图的邻接矩阵(Adjacency Matrix)存储方式是用两个数组来表示图。...一个一维的数组存储图中顶点信息,一个二维数组(称为邻接矩阵)存储图中的边或弧的信息。...设图G有n个顶点,则邻接矩阵是一个n*n的方阵,定义为: 我们来看一个实例,图7-4-2的左图就是一个无向图。 我们再来看一个有向图样例,如图7-4-3所示的左图。...设图G是网图,有n个顶点,则邻接矩阵是一个n*n的方阵,定义为: 如图7-4-4左图就是一个有向网图。...,可看作边表 */ int numNodes, numEdges; /* 图中当前的顶点数和边数 */ } MGraph; /* 建立无向网图的邻接矩阵表示 */ void CreateMGraph

    78630

    邻接矩阵的使用

    大家好,又见面了,我是你们的朋友全栈君。 一、介绍 什么是邻接矩阵呢?所谓邻接矩阵存储结构就每个顶点用一个一维数组存储边的信息,这样所有点合起来就是用矩阵表示图中各顶点之间的邻接关系。...对于有 n个顶点的图 G=(V,E) 来说,我们可以用一个 n×n 的矩阵 A来表示 G 中各顶点的相邻关系,如果 vi和 vj​ 之间存在边(或弧),则 A[i][j]=1,否则 A[i][j]=0=...下图为有向图 G 对应的邻接矩阵: —- 二、不带权图 4 5 1 2 1 3 1 4 2 4 4 3 有向图: #include const int N = 1005; int...u, v; //表示2个点u--->v for (int i = 0; i < m; i++) { scanf("%d%d", &u, &v); g[u][v] = 1;//有向图...for (int j = 1; j <= n; j++) { printf("%d", g[i][j]); } printf("\n"); } return 0; } 无向图:

    51610

    数据结构与算法 -- 图(邻接矩阵)原理详解

    PS:图在数据结构中有着非常大的分量,它比树有着更为复杂的形式结构,这里就不再说图的基本概念,直接就说图的存储结构,邻接矩阵和邻接表。图是有方向的,有方向的叫做弧,无方向的叫做边。...图在大多行业中的使用也是很多的,比如说游戏中两个人物的寻址,自动寻路,就是图与图直接经过计算然后移动。后序还会介绍Dijkstra(迪杰斯特拉)算法计算最短路径问题。 下面介绍邻接矩阵原理: ?...思路 首先把要知道顶点和边数,然后单独把顶点存在一维数组中,根据边来确定两个顶点之间的联系,比如说第一条边,是A->B。归根结底也是通过数组来存储。当然这是邻接矩阵。...typedef struct { VertexType vexs[MAXVEX]; /* 顶点表*/ EdgeType arc[MAXVEX][MAXVEX]; /* 邻接矩阵...3:打印表 void printfL(MGraphy *g) { //输出图的信息 printf("表为 :\n"); int i = 0; //先打印行标题;顶点标题

    1.1K30

    【数据结构与算法】图 ( 图的存储形式 | 图的基本概念 | 图的表示方式 | 邻接矩阵 | 邻接表 | 图的创建 | 代码示例 )

    文章目录 一、图的存储形式 二、图的基本概念 三、图的表示方式 1、邻接矩阵 2、邻接表 四、图的创建 ( 代码示例 ) 一、图的存储形式 ---- 线性表 中的元素 , 有 一个 直接前驱 和 一个...结点之间的边 有方向 ; 节点之间的边有箭头 ; 带权图 : 边 是有 权重 的 , 计算时不仅要计算路径 , 还要考虑路径的权重 ; 三、图的表示方式 ---- 图的表示方式 : 邻接矩阵 : 二维数组...; 邻接表 : 链表 ; 1、邻接矩阵 图 中有 6 个结点 , 0 ~ 5 ; 使用 6x6 的矩阵 表示 图 , 第 i 行 第 j 列 的元素表示 结点 i 和 结点 j 是否连接 ; 默认情况下...存储 图 ; 代码示例 : import java.util.ArrayList; import java.util.Arrays; public class Graph { /**...* 图顶点 */ private ArrayList vertexList; /** * 图的邻接矩阵 */ private int

    2.4K20

    扫码

    添加站长 进交流群

    领取专属 10元无门槛券

    手把手带您无忧上云

    扫码加入开发者社群

    相关资讯

    热门标签

    活动推荐

      运营活动

      活动名称
      广告关闭
      领券