第7章 图文档格式.docx

上传人:b****1 文档编号:15392711 上传时间:2022-10-29 格式:DOCX 页数:32 大小:240.90KB
下载 相关 举报
第7章 图文档格式.docx_第1页
第1页 / 共32页
第7章 图文档格式.docx_第2页
第2页 / 共32页
第7章 图文档格式.docx_第3页
第3页 / 共32页
第7章 图文档格式.docx_第4页
第4页 / 共32页
第7章 图文档格式.docx_第5页
第5页 / 共32页
点击查看更多>>
下载资源
资源描述

第7章 图文档格式.docx

《第7章 图文档格式.docx》由会员分享,可在线阅读,更多相关《第7章 图文档格式.docx(32页珍藏版)》请在冰豆网上搜索。

第7章 图文档格式.docx

typedefcharVertexType[MAX_NAME];

//顶点类型!

!

typedefcharInfoType;

//相关信息类型

typedefenum{DG,DN,UDG,UDN}GraphKind;

//{有向图,有向网,无向图,无向网}//!

1!

枚举怎么用?

typedefstructArcCell{

VRTypeadj;

//VRType是顶点关系类型。

对无权图,用1或0

//表示相邻否;

对带权图,则为权值类型。

InfoType*info;

//该弧相关信息指针

}ArcCell,AdjMatrix[MAX_VERTEX_NUM][MAX_VERTEX_NUM];

typedefstruct{

VertexTypevexs[MAX_VERTEX_NUM];

//顶点向量

AdjMatrixarcs;

//邻接矩阵

intvexnum,arcnum;

//图的当前顶点数和弧数

GraphKindkind;

//图的种类标志

}MGraph;

//函数声明

intLocateVex(MGraphG,VertexTypeu);

voidCreateGraph(MGraph&

G);

voidCreateFUDG(MGraph&

//由文件构造

voidCreateFUDN(MGraph&

voidCreateDG(MGraph&

voidCreateDN(MGraph&

voidCreateUDG(MGraph&

voidCreateUDN(MGraph&

voidDestroyGraph(MGraph&

VertexType&

GetVex(MGraphG,intv);

//为什么要加&

StatusPutVex(MGraph&

G,VertexTypev,VertexTypevalue);

 

//若G中存在顶点u,则返回顶点在图中的位置;

否则返回-1

intLocateVex(MGraphG,VertexTypeu)

{

inti;

for(i=0;

i<

G.vexnum;

++i)

if(strcmp(u,G.vexs[i])==0)

returni;

return-1;

}

/*==================================================

//算法7.1

//采用数组(邻接矩阵)表示法,构造图G。

G)

scanf("

%s"

&

G.kind);

switch(G.kind){

caseDG:

CreateDG(G);

//构造有向图G

break;

caseDN:

CreateDN(G);

//构造有向网G

caseUDG:

CreateUDG(G);

//构造无向图G

caseUDN:

CreateUDN(G);

//构造无向网G

}

====================================================*/

printf("

请输入图的类型(有向图:

0,有向网:

1,无向图:

2,无向网:

3):

"

);

%d"

//采用数组(邻接矩阵)表示法,构造无向图G。

由文件构造

inti,j,k;

charfilename[13];

VertexTypeva,vb;

FILE*graphlist;

请输入数据文件名:

filename);

graphlist=fopen(filename,"

r"

//打开数据文件,并以graphlist表示

fscanf(graphlist,"

G.vexnum);

G.arcnum);

++i)//构造顶点向量

fscanf(graphlist,"

G.vexs[i]);

++i)//初始化邻接矩阵

for(j=0;

j<

++j)

{

G.arcs[i][j].adj=0;

//图

G.arcs[i][j].info=NULL;

//没有相关信息

}

for(k=0;

k<

G.arcnum;

++k)

{

%s%s"

va,vb);

i=LocateVex(G,va);

j=LocateVex(G,vb);

G.arcs[i][j].adj=G.arcs[j][i].adj=1;

//无向图

fclose(graphlist);

//关闭数据文件

G.kind=UDG;

//算法7.2

//采用数组(邻接矩阵)表示法,构造无向网G。

inti,j,k,w;

G.arcs[i][j].adj=INFINITY;

//网

%s%s%d"

va,vb,&

w);

G.arcs[i][j].adj=G.arcs[j][i].adj=w;

//无向网

G.kind=UDN;

//采用数组(邻接矩阵)表示法,构造有向图G

inti,j,k,l,IncInfo;

chars[MAX_INFO];

请输入有向图G的顶点数,弧数,弧是否含其它信息(是:

1,否:

0):

%d%d%d"

G.vexnum,&

G.arcnum,&

IncInfo);

请输入%d个顶点的值(<

%d个字符):

\n"

G.vexnum,MAX_NAME);

scanf("

请输入%d条弧的弧尾弧头(以空格作为间隔):

G.arcnum);

%s%s%*c"

//%*c吃掉回车符

G.arcs[i][j].adj=1;

//有向图

if(IncInfo)

printf("

请输入该弧的相关信息(<

MAX_INFO);

gets(s);

l=strlen(s);

if(l)

{

G.arcs[i][j].info=(char*)malloc((l+1)*sizeof(char));

//有向

strcpy(G.arcs[i][j].info,s);

}

G.kind=DG;

//采用数组(邻接矩阵)表示法,构造有向网G

inti,j,k,w,IncInfo;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 医药卫生 > 中医中药

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1