




已阅读5页,还剩2页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
#include#include#define Max 10#define FALSE 0#define TRUE 1#define Error printf#define QueueSize 30typedef struct char vexsMax; int edgesMaxMax; int n,e;MGraph;int visitedMax;typedef struct int front; int rear; int count; int dataQueueSize;CirQueue;/初始化队列 void InitQueue(CirQueue *Q) Q-front=Q-rear=0; Q-count=0;/队列空int QueueEmpty(CirQueue *Q) return Q-count=QueueSize; /队列满int QueueFull(CirQueue *Q) return Q-count=QueueSize; /进队void EnQueue(CirQueue *Q,int x) if(QueueFull(Q) Error(Queue overflow); else Q-count+; Q-dataQ-rear=x; Q-rear=(Q-rear+1)%QueueSize; /出队int DeQueue(CirQueue *Q) int temp; if(QueueEmpty(Q) Error(Queue underflow); else temp=Q-dataQ-front; Q-count-; Q-front=(Q-front+1)%QueueSize; return temp; /建立图矩阵void CreateMGraph(MGraph *G) int i,j,k; char ch1,ch2; printf(ntt请输入顶点数,边数并按回车键(格式:3,4):); scanf(%d,%d,&(G-n),&(G-e); for(i=0;in;i+) getchar(); printf(ntt请输入第%d个顶点序号并按回车键,i+1); scanf(%c,&(G-vexsi); for(i=0;in;i+) for(j=0;jn;j+) G-edgesij=0; for(k=0;ke;k+) getchar(); printf(ntt请输入第%d条边的顶点序号并按回车键(格式:i,j):,k+1); scanf(%c,%c,&ch1,&ch2); for(i=0;ch1!=G-vexsi;i+); for(j=0;ch2!=G-vexsj;j+); G-edgesij=1; /深度优先遍历递归 void DFSM(MGraph *G,int i) int j; printf(ntt深度遍历序列:%cn,G-vexsi); visitedi=TRUE; for(j=0;jn;j+) if(G-edgesij=1&!visitedj) DFSM(G,j); /广度优先遍历递归void BFSM(MGraph *G,int k) int i,j; CirQueue Q; InitQueue(&Q); printf(ntt广度优先遍历序列:%cn,G-vexsk); visitedk=TRUE; EnQueue(&Q,k); while(!QueueEmpty(&Q) i=DeQueue(&Q); for(j=0;jn;j+) if(G-edgesij=1 &! visitedj) visitedj=TRUE; EnQueue(&Q,j); /深度优先遍历void DFSTraverseM(MGraph *G) int i; for(i=0;in;i+) visitedi=FALSE; for(i=0;in;i+) if(!visitedi) DFSM(G,i); /广度优先遍历void BFSTraverseM(MGraph *G) int i; for(i=0;in;i+) visitedi=FALSE; for(i=0;in;i+) if(!visitedi) BFSM(G,i); main() MGraph *G,a; char ch1; int i,j,ch2; G=&a; printf(ntt建立一个图矩阵n); CreateMGraph(G); printf(ntt已建立图的矩阵n); for(i=0;in;i+) printf(ntt ); for(j=0;jn;j+) printf(%5d,G-edgesij); getchar(); ch1=y; while(ch1=y|ch1=Y) printf(n); printf(ntt 图子系统 n); printf(ntt*n); printf(ntt* 1-更新矩阵 *n); printf(ntt* 2-深度优先遍历 *n); printf(ntt* 3-广度优先遍历 *n); printf(ntt* 0-退出 *n); printf(ntt*n); printf(ntt请选择菜单号(03):); scanf(%d,&ch2); getchar(); switch(ch2) case 1: CreateMGraph(G); printf(ntt图建立完毕!n); break; case 2: DFSTraverseM(G); break; case 3: BFSTraverseM(G); break; case 0: ch1=n; brea
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中介新员工培训体系
- 稽查小组奖励方案范本
- 培训机构回顾历程
- 2026届四川广安市化学九上期末质量跟踪监视试题含解析
- 水泥砖房施工方案
- 2026届四川省巴中市英语九上期末学业质量监测试题含解析
- 2026届四川省泸州市高中学阶段学校九年级化学第一学期期末达标测试试题含解析
- 2026届浙江省杭州市萧山区万向中学九年级英语第一学期期末统考模拟试题含解析
- 人事行政专员个人年终总结
- 钢筋质量重点培训
- 2024-2025学年人教版八年级上册地理每日默写知识点(背诵版)
- 《建设法规》教案+第1次课+法律体系
- 患者的卧位课件
- 中药香囊与车载香氛结合企业制定与实施新质生产力战略研究报告
- 2024年国网辽宁省电力有限公司招聘考试真题
- 取保候审后外出申请书
- 人教版劳动教育实践活动手册教案一年级
- 小狗钱钱全本(完整版)
- 2025关于咨询服务合同范本
- 传承伟大抗战精神心得体会
- 城镇开发边界局部优化方案编制要求
评论
0/150
提交评论