首页 > 其他分享 >邻接矩阵存储创建有向图

邻接矩阵存储创建有向图

时间:2023-11-28 23:33:22浏览次数:45  
标签:vexnum 存储 有向图 cout int 邻接矩阵 error 顶点

#include<iostream>
using namespace std;
//邻接矩阵需要顶点表,二维矩阵,还有点数边数
#define MVNum 100
typedef struct
{
char vexs[MVNum]; //顶点表
int arcs[MVNum][MVNum]; //矩阵
int vexnum,arcnum; //顶点数、边数
}AMGraph;
int LocateVex(AMGraph G,char v)
{//找到顶点在顶点表中的位置
for(int i=0;i<G.vexnum;++i)
if(G.vexs[i]==v)return i;
return -1;
}
void Create(AMGraph &G,int &error)
{//创建有向图
cin>>G.vexnum>>G.arcnum; //输入顶点数和边数
for(int i=0;i<G.vexnum;++i) cin>>G.vexs[i]; //顶点信息
for(int i=0;i<G.vexnum;++i)
for(int j=0;j<G.vexnum;++j) G.arcs[i][j]=0; //有向图初始化为0
for(int k=0;k<G.arcnum;++k) //邻接矩阵信息
{ char v1,v2;
cin>>v1>>v2;
int i=LocateVex(G,v1),j=LocateVex(G,v2); //邻接矩阵只需要修改一下a[i][j]
if(i==-1||j==-1) error=0; //输入的顶点不合法
else G.arcs[i][j]=1; //有向图
}
}
int main()
{
AMGraph G;
int error=1; //输入的顶点无误:1有误:0
Create(G,error);
if(G.vexnum==0||(G.vexnum==1&&G.arcnum>1)||error==0)
//若顶点个数为0,则输出"error"。若顶点个数为1,边个数不合理,则输出"error"
cout<<"error";
else{
for(int i=0;i<G.vexnum;++i){
for(int j=0;j<G.vexnum;++j){
cout<<G.arcs[i][j];
if(j!=G.vexnum-1)cout<<" ";
else cout<<endl;
}
}
}
return 0;
}

标签:vexnum,存储,有向图,cout,int,邻接矩阵,error,顶点
From: https://www.cnblogs.com/zh-ang-zhang/p/17863430.html

相关文章

  • 学习linux“存储管理”收获与心得
    学习Linux的存储管理是一个非常重要的课题,它涉及到如何有效地管理和利用计算机系统中的存储资源。在学习过程中,我收获了以下几点心得体会:   首先,了解文件系统的概念和原理是非常重要的。文件系统是操作系统用来组织和管理存储设备上的文件和目录的一种机制。在Linux中,常用......
  • linux存储管理
    文件系统与磁盘管理1.文件系统Linux支持多种文件系统,如ext4、XFS、Btrfs等。文件系统是数据在磁盘上的组织方式,它负责管理文件的存储、检索和修改。2.磁盘分区fdisk和parted是常用的工具,用于创建、删除和管理硬盘分区。例如,使用fdisk/dev/sdX可以对指定硬盘进行分区操......
  • 学到一个可以存储账号密码的方法
    //登录成功后,将用户名存储在HttpSession中HttpSessionsession=request.getSession();session.setAttribute("username",username);//假设这里的username是登录成功的用户名//在后续页面中获取保存在HttpSession中的用户名HttpSessionsession=request.getS......
  • Linux存储管理
    1存储管理在Linux系统下,系统识别到硬盘后,会为其创建一份初始分区表。硬盘在分区后才可以使用。系通过分区表来管理磁盘。 1.1磁盘磁盘是一种计算机的外部存储器设备,由一个或多个覆盖有磁性材料的铝制或玻璃制的碟片组成,用来存储用户的信息,这种信息可以反复地被读取和改写......
  • 有向图求强连通分量的几种算法
    概要本文介绍了kosaraju,tarjan算法求强连通分量概念有一个有向图G,有几个概念强连通若图中有两个点u和v,他们能互相到达,则称他们强连通强连通图若是G中任意2个点都可以互相到达,则称G是一个强连通图强连通分量有向非强连通图的极大强连通子图(可以有很多个)完全......
  • Mysql架构组成和存储引擎介绍
    Mysql架构图我们来说明这个mysql架构图,每一个部分都有什么作用ConnectorsConnectors翻译成叫连接器,将来我们在工作中去访问数据库。并不会安装一个mysql的客户端,通过命令手工去敲命令。大部分的用户呢,是不懂数据库的,但是他又需要访问数据库里的数据。比方说我们在网上购物,那......
  • linux存储管理中的基本分区
    在Linux存储管理中,了解基本分区是非常重要的。总结如下:1.主引导记录(MBR)分区:MBR分区是传统的分区方式,它将硬盘的第一个扇区用于引导代码和分区表。MBR分区最多支持4个主分区,或者3个主分区和1个扩展分区。2.扩展分区:扩展分区是MBR分区中的一种特殊类型,它可以包含多个逻辑分区。......
  • 存储管理
    1.存储方式1.1从存储连接方式区分本地存储:例如DellR730本地磁盘外部存储:scsi线、stat线、sas线、FC线网络存储:以太网络、FC网络1.2从工作原理区分机械HDD固态SSD1.3从磁盘尺寸区分3.52.51.81.4从插拔方式区分热插拔非热插拔1.5从硬盘主要接口区分IDE......
  • 亚马孙对象存储流的转化(s3 browser)
    S30bjects30bject=smsFileUploadAndDown.getobjectRequest(filePath);StringdownloadName=StringUtils.substringAfterLast(filePath,separator:"/");response.setContentType(MediaType.APPLICATION_OCTET_STREAM_VALUE);FileUtils.setAttachmentResponseH......
  • 存储管理
    作为一位大学生,近期我深入学习了Linux操作系统中的存储管理,这是Linux系统中至关重要的一部分。存储管理涉及到文件系统、磁盘分区、磁盘挂载等方面,对于合理利用硬件资源和提高系统性能至关重要。在本文中,我将分享我所学到的知识,并结合实际案例进行深入解析。文件系统文件系统概......