学习日志(二)

include <stdio.h>

include <stdlib.h>

include <limits.h>

typedef enum{DG}kind;//图的种类
typedef int qlx //权类型
typedef char data;
typedef struct{
qlx adj;//对于无权图,用1或0表示是否相邻,对带权图,则为权值类型
}node;

/图(邻接矩阵)的定义/
typedef char data;
typedef struct{
kind kin;//图的种类
int din,hu;//图的顶点数和弧数
data ddxl[20];//顶点向量
node ljjz[20][20];//邻接矩阵
}trix;

int vex(trix *Q,data v)
{
int j=-1,k;
for(k=0;k din,k++)
if(Q->ddxl[k]==v)
{
j=k;
break;
}
return j;
}

void cshDG(trix *Q)
{
int i,j,k;
qlx qzhi;
data v1,v2;
printf("请输入图的顶点数:\n");
scanf("%d",&Q->din);
printf("请输入图的弧数:\n");
scanf("%d",&Q->hu);
//初始化邻接矩阵
for(i=0;i din;i++)
for(j=0;j din;j++)
Q->ljjz[i][j].adj=0;
printf("请输入顶点信息:\n");
for(i=0;i din;i++)
scanf("%c",&Q->ddxl[i]);
printf("请输入一条弧的起点、终点、权值")
for(k=0;k hu;k++)
{
printf("第%d-%d条:",Q->hu,k+1);
scanf("%c,%c,%d",&v1,&v2,&qzhi);
i=vex(Q,v1);
j=vex(Q,v2);
Q->ljjz[i][j].adj=qzhi;
}
}

void main(trix *Q)
{
cshDG(Q);
}

猜你喜欢

转载自www.cnblogs.com/81dby/p/12900710.html