首页 > 其他分享 >邻接矩阵

邻接矩阵

时间:2023-11-26 22:23:37浏览次数:29  
标签:typedef vernum int 邻接矩阵 MaxSize edgenum

 

#include <stdio.h> 
#include <stdlib.h> 
#define MaxSize 20

typedef int VertexType;
typedef int EdgeType;
typedef int Elem ;

typedef struct{                        //邻接矩阵 
    VertexType Vex[MaxSize];
    EdgeType Edge[MaxSize][MaxSize];
    int vernum,edgenum;
}MGraph;

void Create(MGraph &G)
{
    int i,j;
    G.edgenum=0;
    printf("输入顶点数\n");
    scanf("%d",&G.vernum);
    printf("输入顶点表\n");
    for(i=0;i<G.vernum;i++)
        scanf("%d",&G.Vex[i]);
    printf("输入矩阵\n");
    for(i=0;i<G.vernum;i++)
        for(j=0;j<G.vernum;j++)
        {
            scanf("%d",&G.Edge[i][j]);
            G.edgenum++;
        }
    G.edgenum/=2;    
}

void display(MGraph G)
{
    int i,j;
    printf("顶点表:\n");
    for(i=0;i<G.vernum;i++)
        printf("%d    ",G.Vex[i]);
    printf("\n");
    for(i=0;i<G.vernum;i++)
    {
        for(j=0;j<G.vernum;j++)
            printf("%d    ",G.Edge[i][j]);    
        printf("\n");
    } 
}

void JudgeEL(MGraph G)
{
    int i,j,degree,count=0;
    for(i=0;i<G.vernum;i++)
    {
        degree=0;
        for(j=0;j<G.vernum;j++)
            degree+=G.Edge[i][j];
        if(degree%2!=0)
            count++;
    }
    if(count==2||count==0)
        printf("ExistEL");
    else
        printf("NoExistEL");
}

int main()
{
    MGraph G;
    Create(G);
    display(G);
    printf("\n");
    JudgeEL(G);
    return 0;
}

 

标签:typedef,vernum,int,邻接矩阵,MaxSize,edgenum
From: https://www.cnblogs.com/simpleset/p/17858090.html

相关文章

  • 邻接表与邻接矩阵的转换
    //邻接表--->邻接矩阵voidConvert(GraphG,&intA[n][n]){  for(inti=0;i<n;i++){    for(p=G.vexnum[i].firstarc;p;p=p->nextarc){      A[i][p->adjvex]=1;    }  }} //邻接矩阵--->邻接表voidConvert(intA[n][n],Graph&G){  Ar......
  • 邻接矩阵
    邻接矩阵(AdjacencyMatrix)是表示顶点之间相邻关系的矩阵。  设一个图G=(V,E)逻辑结构分为两部分:V和E集合,其中,V是顶点,E是边。用一个一维数组存放图中所有顶点数据;用一个二维数组存放顶点间关系(边或弧)的数据,这个二维数组称为邻接矩阵。......
  • (转)图的存储结构|邻接矩阵、邻接表、十字链表、邻接多重表、边集数组
    原文:https://juejin.cn/post/6996132859001962504?searchId=20230925172238C35D1579B2CBC3D2F78A7.4图的存储结构图的存储结构相较线性表与树来说就更加复杂了。首先,我们口头上说的“顶点的位置”或“邻接点的位置”只是一个相对的概念。其实从图的逻辑结构定义来看,图上任何......
  • 邻接矩阵的DFS
    采用递归的方法1#include<stdio.h>2#include<stdlib.h>34#defineMaxSize2056typedefstruct{7intVer[MaxSize];8intEdge[MaxSize][MaxSize];9intVerNum;10intEdgeNum;11}Graph;1213voidCreat......
  • 邻接矩阵的BFS
    intArrNum(GraphG,intver){for(inti=0;i<G.VerNum;i++)if(G.Ver[i]==ver)returni;elsereturn-1;}intFirstNeighbor(GraphG,intver){intx=ArrNum(G,ver);for(inti=0;i<G.VerNum;i++){......
  • 邻接矩阵存储无向图
    没有使用矩阵的压缩存储#include<stdlib.h>#include<stdio.h>#defineMaxVertexNum20typedefstruct{intVex[MaxVertexNum];//存储顶点intEdge[MaxVertexNum][MaxVertexNum];//存储边intVexNum;......
  • 图论之存图-----邻接矩阵
    跟着思路敲了一遍,感觉清晰多了,但是还得多复习。就是利用了深度搜索,很奇妙。点击查看代码#include<bits/stdc++.h>usingnamespacestd;constintN=2e5+10;intw[N][N];intvis[N];intn,m;inta,b,c;voiddfs(intu){ vis[u]=true; if(vis[u]){ for(inti=1;i<=......
  • 邻接表和邻接矩阵:图的两种存储方式
     引言图是一种非常重要的数据结构,它可以用来表示很多复杂的现实问题,如网络拓扑、社交关系、地图导航等。为了有效地处理图相关的算法,我们需要选择合适的存储方式来表示图中的顶点和边。本文将介绍图的两种常用存储方式:邻接表和邻接矩阵,并比较它们的优缺点。邻接矩阵邻接矩阵......
  • 两种常用的存图方法(邻接矩阵和链式前向星)
    今天上午模拟赛的时候,(十分错误地)判断有一道题可以用LCA混点分(然而还不如直接爆搜得分高),在敲那个LCA的代码时突然想起来我好像还没有写过LCA,想了想,是该给我的LCA写点东西了呢。但是!不出意外的,出了亿点点意外,就是我在敲板子题的时候发现经过一年的荒废,我已经完全不会链式前......
  • 邻接矩阵表示法
    邻接矩阵表示法使用邻接矩阵创建无向图需要一个顶点表和邻接矩阵邻接矩阵的存储结构采用邻接矩阵建立无向网输入总顶点数和总边数。输入点的信息存入顶点表中。初始化化为邻接矩阵,使每个权值初始化为极大值。构造邻接矩阵算法实现在图中查找顶点代码实现#inclu......