zoukankan      html  css  js  c++  java
  • 第十二周

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

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

    如下  图的零接矩阵

    #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(" ");
        }
    }

  • 相关阅读:
    Algs4-1.1.17找出以下递归函数的问题
    Algs4-1.1.16给出exR1(6)的返回值
    Algs4-1.1.15编写一个静态方法histogram()
    Algs4-1.1.14实现以2为底的对数
    Algs4-1.1.13编写一段代码,打印出一个M行N列的二维数组的转置(交换行和列)
    Algs4-1.1.12以下代码段会打印出什么结果?
    python将一个列表的元素随机打乱
    python 类似java的三目运算符
    java的三元运算符
    java 的Colections类(Java也有python类似列表的反转、排序等方法)
  • 原文地址:https://www.cnblogs.com/lsx1989/p/5499240.html
Copyright © 2011-2022 走看看