邻接矩阵表示有向带权图-创新互联

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

typedef char VertexType[5]; //存储顶点值


#define MaxSize 50
#define INIT 10000

typedef struct //邻接矩阵,存储弧的信息
{
    int adj;
}ArcNode,AdjMatrix[MaxSize][MaxSize];

typedef struct   //图的类型定义
{
    VertexType vex[MaxSize];  //存储顶点值
    AdjMatrix arc;  //邻接矩阵
    int arcnum,vexnum;   //前者弧数,后者顶点数
}MGraph;

void CreateVertex(MGraph *G)    //创建邻接矩阵
{
    int i,j,k,w;  
    VertexType v1,v2;
    
    printf("请输入有向带权图的顶点数和弧数:(空格间隔)\n");
    scanf("%d%d",&(*G).vexnum,&(*G).arcnum);
    
    printf("请输入%d个顶点的值:\n",G->vexnum);
    for ( i=0 ; i<G->vexnum ; i++ )
    {
        scanf("%s",&G->vex[i]);
    }
    
    for ( i=0 ; i<G->vexnum ; i++ )     //初始化邻接矩阵
    {
        for ( j=0 ; j<G->vexnum ; j++ )
        {
            G->arc[i][j].adj = INIT;
        }
    }
    
    printf("请输入%d条弧的弧尾,弧头和权值:\n",G->arcnum);
    for ( k=0 ; k<G->arcnum ; k++ )
    {
        scanf("%s%s%d",v1,v2,&w);
        i = LocateVertex(*G,v1);
        j = LocateVertex(*G,v2);
        
        G->arc[i][j].adj = w;
    }
}


int LocateVertex(MGraph G,VertexType v)  //索引
{
    int i;
    
    for ( i=0 ; i<G.vexnum ; i++ )
    {
        if ( strcmp(G.vex[i],v) == 0 )
        {
            return i;
        }
    }
    return -1;
}

void DisplayVertex(MGraph G)   //输出
{
    int i,j;
    
    printf("%d个顶点的值为:",G.vexnum);
    for ( i=0 ; i<G.vexnum ; i++ )
    {
        printf("%s ",G.vex[i]);
    }
    
    printf("\n有向带权图\n");
    
    printf("序号:");
    for ( i=0 ; i<G.vexnum ; i++ )
    {
        printf("%8d",i);
    }
    printf("\n");
    
    for ( i=0 ; i<G.vexnum ; i++ )
    {
        printf("%8d",i);
        for ( j=0 ; j<G.vexnum ; j++ )
        {
            printf("%8d",G.arc[i][j].adj);
        }
        printf("\n");
    }
    
}


int main(void)
{
    MGraph G;
    printf("创建图:\n");
    CreateVertex(&G);
    
    printf("输出图:");
    DisplayVertex(G);
    printf("\n");
        
    return 0;
}

创新互联建站专业为企业提供永靖网站建设、永靖做网站、永靖网站设计、永靖网站制作等企业网站建设、网页设计与制作、永靖企业网站模板建站服务,十载永靖做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。

新闻标题:邻接矩阵表示有向带权图-创新互联
转载源于:https://www.cdcxhl.com/article20/dsphjo.html

成都网站建设公司_创新互联,为您提供品牌网站制作网站导航微信公众号用户体验网站策划服务器托管

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

搜索引擎优化