




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
#include<stdio.h>
Ainclude<stdlib.h>
Ainclude<conio.h>
茸defineMAXV100/*弧的结点结构类型*/
typedefcharElemType;
/*该弧的终点位置”
typedefstructANode指向下一条弧的指针*/
(
intadjvex;structANode
*nextarc:
/*邻接表头结点的类型”
}ArcNode;
/*顶点信息*/
typedefstructVnode/*指向第一条弧*/
(
ElemTypedata;
ArcNode*firstarc;/.AdjUst是邻接表类型*/
}VNode;
typedefVNodeAdjList[MAXV];/*邻接表*/
typedefstruct/*图中顶点数n和边数e*/
(/*图的类型*/
AdjListadjlist;intn,e;
)ALGraph;
typedefstruct
/*顶点编**/
(
/*顶点其他信息*/
intno;
/*顶点类型”
ElemTypedata;
)VertexType;
/*图的定义*/
typedefstruct
(/*邻接矩阵率/
intedges[MAXV][MAXV];/*顶点数,弧数*/
intvexnum,arcnum;/*存放顶点信息*/
VertexTypevexs[MAXVJ;
)MGraph;
〃界面函数
voidjiemianO
printf("***无向图的建立及其应用***\n");printf("\rT);
printfC*l.邻接矩阵建图W);
printf(**2.邻接表建图\n");
printfC*3.邻接表图的广度遍历\n”);
printf("*4.结束..........\n*);
printf("----------------------------\rT);
printf(*温馨提示:为了让您使用愉快,请按提示操作!\n”);printf
请选择:");
voidshuchul(MGraph*m)〃输出邻接矩阵
(
inti,j;
print®邻接矩阵为:\n-);
for(i=0:i<m>>vexnum:i++)
(
for(j=0;exnum;j++)
(
print"%d'm")edges[i]fj]);
)
if(j=m->vexnum)〃换行判断
printf(H\n");
voidcreategraphl()〃创建邻接矩阵
inti,j,a,b;
MGraph*m;
m=(MGraph*)malloc(sizeof(MGraph));
printf(”这里是用邻接矩阵建图:\n");
printf("请输入图的顶点数:\n〃);
scanf(飞d”,&m-〉vexnum);
for(i=0;i<m->vexnum;i++)〃邻接矩阵置零
for(j二0;j<m->vexnum:j++)
m->edgesli][j]Zl0;
for(i=l;i<=m->vexnum;i++)
"输入顶点
printf(*请输入第%d个顶点:\n*,i);
scanf(''%c'',&m->vexs[iT].data);
getchaiO;
m*>vexs[i].no=i;
)
printf(n\nn);
printf(”请输入图的边数:\n”);〃输入边
scanf(〃、d〃,&m->arcnum);
print?("请输入边相连的两个顶点,逗号隔开,例如:a->b,输入为:1,2\吟;
for(j=l;j<=m->arcnum:j++)
(
printf(〃请输入第%d条边相连的两个顶点:\n”,m->vexs[j].no);scanfC%d,%d\&a,&b);
m->edges[aT][bT]二1;
)
systemC'CLS*);
shuchul(m);
)
voidshuchu2(ALGraph*a)〃输出邻接表
(
inti,j;
ArcNode*q;
printf(”这是所建立的图:\n");
for(i二0;i〈a->n;i++)
(
printf(*%c二a->adjlist[i],data);
printf
q二a->adjlistLi],firstarc;
for(j=O;j<a->n;j++)
(
if(q=NULL)
(
printf(*"\n*);
break;
)
printfC%d",q->adjvex);
printf
q=q->nextarc;
voidcreategraph2(ALGraph*a)〃创建邻接表
intitj,c,d;
ArcNode*p;
a->n=aA>e=0;
printf(*这是用邻接表建图:\n");
printf("请输入图的顶点数:\n");
scanf(W,&a->n);
for(i=0;i<a->n;iA+)〃置空
(
a->adjlistLi],firstarc二NULL;
)
for(i=l;i<=a->n;i++)〃输入顶点
(
printf("清输入第96d个顶点\n”,i);
getchar0;
scanf&a_)adjlist[iT],data);
)
printf("\nn);
printf("请输入图的边数:\n");〃输入边
scanf&a->e);
printf(*请输入各条边相连的两个顶点,例如:a->b,a为第一个顶点,b为第二个;输入:1,
2\n");
for(j=l;j<=a>>e;j++)
(
printf(*请输入第%d条边相连的两个顶点:\n”,j);
scanf("%d,&c,&d);
if(c<ld<lc>a~>nd>a~>n)
(
printf(*输入有误!\n*);
continue;
)
p二(ArcNode*)malloc(sizeof(ArcNode));//a至Ub
p->adjvex二dT;
p->nextarc=a->adj1ist[cT].firstarc;a->adjlistEc~L.firstarc=p;
p=(ArcXode*)malloc(sizeof(ArcNode));//b到a
p->adjvex=cT;
p->nextarc=a->adj1ist[dT].firstarc;a——>adjlist•firstarc=p;
systeni(MCLSn);
shuchu2(a);〃调用输出
)
intFLAGO〃判断是否返回主菜单
(
ints;
printfC”返回主菜单按1,退出按0:\nn);
printfC请选择:\n*);
scanf(飞d",&s);
system(nCLSH);
returns;
)
voidguangdu(ALGraph*a,intv)//广度遍历
(
ArcNode*p;
intqueueLMAXVrJ;
intvisited[MAXV];
intf=0,p=0,x,i;
for(i=0;i<a->n;i++)
(
visited[i]=O;
)
printf("%c",a->adjlist[vTJ.data);
visited[v-l]=l;
r=(r+l)%MAXV;
queueEr]=v;
while(f!=r)
(
f=(f+l)%MAXV;
x二queuelf[;
adjlist[x],firstarc;
while(p!二NULL)
(
if(visited[p->adjvex]==O)
(
visitedEp"?adjvex]=l;
printf(A%c二a->adjlist[p->adjvex].data);
r二(r-l)GMAXV;
queue[r]=p->adjvex;
p=p〜〉nextarc;
printf(*\n*);
getchO;
system("CLSn);
voidmain0
intflagZ11,c,v,i;
ALGraph*a;
a=(ALGraph*)malloc(sizeof(ALGraph)):
while(flag)
JiemianO;scanf"选择界而
(W,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 餐饮门店核算管理制度
- 保洁管理制度与考核
- 运输公司团队管理制度
- 货运公司9个管理制度
- 酒店前厅加班管理制度
- 酒店部门权限管理制度
- 隧道施工奖罚管理制度
- 门店管理药品管理制度
- 超前地质预报管理制度
- 运维公司运营管理制度
- 汽车智能系统知识
- 中央2024年国家药品监督管理局中国食品药品检定研究院招聘笔试历年参考题库真题考点解题思路附带答案详解
- 2025温州二模253温州二模英语试卷
- 2025年离婚申请协议书模板电子版
- 人教版(2024)一年级数学下册第五单元100以内的笔算加、减法素养卷(含答案)
- 2025-2030中国便利店行业发展前景及发展策略与投资风险研究报告
- 2025上海劳动合同样本专业版(合同版本)
- 2025年山东省枣庄市台儿庄区中考一调语文试题(原卷版+解析版)
- 2025年江苏省苏锡常镇高考数学调研试卷(一)(含答案)
- (二模)乌鲁木齐地区2025年高三年级第二次质量检测语文试卷(含官方答案)
- 2018工程定额单价表
评论
0/150
提交评论