版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
#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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年湖南工业职业技术学院高职单招职业适应性测试备考试题带答案解析
- 2025年护理事业编考试面试真题及答案
- 2025年广西柳州人事考试及答案
- 《建筑装饰设计》课件-项目1:设计基础理论
- 2025年遂溪教师招聘笔试真题及答案
- 2025年助理执业第一单元笔试及答案
- 安全维稳培训课件
- 四年级精通版英语上册上课课件Unit4Funtime
- 慕容倾月协议书离婚
- 车用加气站操作员安全生产基础知识考核试卷含答案
- 25数五上数学人教版期末押题卷5套
- T∕GDAM 005.1-2025 实验室仪器设备管理规范 第1部分:总则
- 2026年辽宁金融职业学院单招职业适应性测试题库及参考答案详解
- 2025年全面质量管理体系建设项目可行性研究报告
- 光疗课件教学课件
- 北师大版二上《参加欢乐购物活动》(课件)
- 基坑土方开挖专项施工方案(完整版)
- 2026年教师资格之中学综合素质考试题库500道及完整答案【名师系列】
- 中海大海洋地质学课件第4章河口与海岸-3第十二讲
- 招标人主体责任履行指引
- 财务审计工作程序及风险防范措施
评论
0/150
提交评论