• 第十二周


    这周除了上课时的课堂内容,其余几乎都在排练,毕竟快比赛了,每晚都要与同学们一起练,累也充实。

    这周对数据结构课程比较印象深刻,也加以练习

    如下  图的零接矩阵

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

    #define INFINITY INT_MAX
    #define MAX_VEX_NUM 10
    typedef  enum{DG, AG, WDG, WAG}Graph;
    typedef int ValType;
    typedef struct {        
             ValType ArcVal;
        //InfoType ArcInfo;
    } AdjType;
    typedef char VexType;
    typedef  struct{
        Graph kind;
        int vexnum, arcnum;
        VexType vexs[MAX_VEX_NUM];
        AdjType adj[MAX_VEX_NUM][MAX_VEX_NUM];
    }AdjGraph;       

    int LocateVex(AdjGraph *G, VexType v)
    {
        int i;
        for(i=0; i<G->vexnum; i++)
        {
            if(G->vexs[i]==v)
                return i;
        }
        return -1;
    }


    void CreateDG(AdjGraph *G)/*G->kind=DG*/
    {
        int i, j, k;
        VexType v1, v2;

        printf("请输入图的顶点数目:");
        scanf("%d", &G->vexnum );

        printf("请输入弧的数目:");
        scanf("%d", &G->arcnum );

        printf("请输入顶点信息:");
        for(i=0; i<G->vexnum; i++)
        {    fflush(stdin);
            scanf("%c", &G->vexs[i]);
        }

        /*初始化邻接矩阵*/
        for(i=0; i<G->vexnum; i++)
            for(j=0; j<G->vexnum; j++)
                G->adj[i][j].ArcVal=INFINITY;
        

        printf("构建邻接矩阵,请输入一条弧的起点和终点,例如"a,b" ");
        for(k=0; k<G->arcnum; k++)
        {
        printf("第%d-%d条:", G->arcnum, k+1);
            fflush(stdin);
            scanf("%c,%c", &v1, &v2);
            i=LocateVex(G, v1);
            j=LocateVex(G, v2);
            G->adj[i][j].ArcVal=1;
        }
    }


    void main()
    {
        AdjGraph G;
        G.kind=DG;
        CreateDG(&G);

        int i, j;    
        printf("输出图的邻接矩阵: ");
        for(i=0; i<G.vexnum; i++)
        {    for(j=0; j<G.vexnum; j++)
                printf("%14d", G.adj[i][j].ArcVal);
            printf(" ");
        }
    }

  • 相关阅读:
    容器占用空间的小问题
    一个ipv4到ipv6的移植问题
    一个linux内核模块移植到低版本时发生的异常
    一个发包乱序问题记录
    一个docker镜像中的目录删除不了问题
    C/C++(共用体与枚举)
    C/C++(数据结构栈的实现)
    C/C++(结构体)
    C/C++(内存管理)
    C/C++(指针数组)
  • 原文地址:https://www.cnblogs.com/lsx1989/p/5499240.html
Copyright © 2020-2023  润新知