码迷,mamicode.com
首页 > 其他好文 > 详细

第十一周

时间:2016-05-16 21:27:10      阅读:321      评论:0      收藏:0      [点我收藏+]

标签:

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

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

如下  图的零接矩阵

#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\"\n");
    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("输出图的邻接矩阵:\n");
    for(i=0; i<G.vexnum; i++)
    {    for(j=0; j<G.vexnum; j++)
            printf("%14d", G.adj[i][j].ArcVal);
        printf("\n");
    }
}

第十一周

标签:

原文地址:http://www.cnblogs.com/lsx1989/p/5499240.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!