📄 creat.h
字号:
//--------------------------------构造图------------------------------------------//
void creatGraph(ALGraph *G,char *fi)
{//输入各个顶点及弧的信息构造图
int i,j,k;
int w;
char v1[10],v2[10];//图顶点名最长10个字符
FILE *fp;
if((fp=fopen(fi,"r"))==NULL)
{
printf("can not open %s file.\n",fi);
exit(0);
}
fscanf(fp,"%d%d",&G->vexnum,&(G->arcnum));//读入顶点数和弧数
G->vex=(vnode **)malloc(G->vexnum*sizeof(vnode *)); //为顶点分配空间
for(i=0;i<G->vexnum;++i)
{
G->vex[i]=(vnode *)malloc(5*sizeof(char));
}
G->arc=(unsigned int **)malloc(G->vexnum*sizeof(unsigned int *)); //为弧分配空间,邻接矩阵存储图
for(i=0;i<G->vexnum;++i)
{
G->arc[i]=(unsigned int *)malloc(G->vexnum*sizeof(unsigned int));
}
for(i=0;i<G->vexnum;++i) //初始化弧
{
for (j=0;j<G->vexnum;++j)
G->arc[i][j]=Maxint;
}
for(i=0;i<G->vexnum;++i) //读入顶点
{
fscanf(fp,"%s",G->vex[i]);
}
for(k=0;k<G->arcnum;++k) //读入弧信息
{
fscanf(fp,"%s%s%d",v1,v2,&w);
i=locatevex(G,v1);
j=locatevex(G,v2);
G->arc[i][j]=w;
}
fclose(fp);
}
void creatGraphm(ALGraph *G,char *fi)
{//输入各个顶点及弧的信息构造图
int i,j;
int w;
FILE *fp;
if((fp=fopen(fi,"r"))==NULL)
{
printf("can not open %s file.\n",fi);
exit(0);
}
fscanf(fp,"%d",&G->vexnum);//读入顶点数
G->vex=(vnode **)malloc(G->vexnum*sizeof(vnode *)); //为顶点分配空间
for(i=0;i<G->vexnum;++i)
{
G->vex[i]=(vnode *)malloc(5*sizeof(char));
}
G->arc=(unsigned int **)malloc(G->vexnum*sizeof(unsigned int *)); //为弧分配空间,邻接矩阵存储图
for(i=0;i<G->vexnum;++i)
{
G->arc[i]=(unsigned int *)malloc(G->vexnum*sizeof(unsigned int));
}
for(i=0;i<G->vexnum;++i) //初始化弧
{
for (j=0;j<G->vexnum;++j)
G->arc[i][j]=Maxint;
}
for(i=0;i<G->vexnum;++i) //读入顶点
{
fscanf(fp,"%s",G->vex[i]);
}
for(i=0;i<G->vexnum;++i) //读入弧信息
{
for(j=0;j<G->vexnum;++j)
{
fscanf(fp,"%d",&w);
if(w==-1||w==0)
G->arc[i][j]=Maxint;
else
G->arc[i][j]=w;
}
}
fclose(fp);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -