首页
学习
活动
专区
工具
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

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

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

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

91020

数据结构 邻接矩阵

大家好,又见面了,我是你们朋友全栈君。 邻接矩阵存储方式是用两个数组来实现,一个一维数组存储顶点信息,一个二维数组存储线(无向)或弧(有向信息。...设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 {

59510

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

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

17530

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

邻接矩阵(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.3K80

直播短视频源码,邻接矩阵实现相关代码

:有向"<<endl;     else if(G.type==UDG)cout<<"类型:无向"<<endl;     else if(G.type==DN)cout<<"类型:有向网"<...<endl;     else if(G.type==UDN)cout<<"类型:无向网"<<endl;     cout<<"顶点数目:"<<G.vertexnum<<endl;     cout...<<"数目:"<<G.arcnum<<endl;     cout<<"顶点集合:";     for(int i=1;i<=G.vertexnum;i++)cout<<G.vertex[i...]<<" ";     cout<<endl;     cout<<"邻接矩阵:"<<endl;     bool flag=true;         for(int i=1;i<=G.vertexnum...<endl;     DFStraverse(G);     cout<<"广度遍历:"<<endl;     BFStraverse(G);     return 0; } 以上就是直播短视频源码,邻接矩阵实现相关代码

49431

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

大家好,又见面了,我是你们朋友全栈君。 邻接矩阵(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

57430

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

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

邻接矩阵使用

大家好,又见面了,我是你们朋友全栈君。 一、介绍 什么是邻接矩阵呢?所谓邻接矩阵存储结构就每个顶点用一个一维数组存储边信息,这样所有点合起来就是用矩阵表示图中各顶点之间邻接关系。...对于有 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; } 无向

48610

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

文章目录 一、存储形式 二、基本概念 三、表示方式 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

2K20

扫码

添加站长 进交流群

领取专属 10元无门槛券

手把手带您无忧上云

扫码加入开发者社群

相关资讯

热门标签

活动推荐

    运营活动

    活动名称
    广告关闭
    领券