数据结构旅游区导航图课程设计报告书

上传人:xmg****18 文档编号:120362970 上传时间:2020-02-06 格式:DOC 页数:68 大小:708KB
返回 下载 相关 举报
数据结构旅游区导航图课程设计报告书_第1页
第1页 / 共68页
数据结构旅游区导航图课程设计报告书_第2页
第2页 / 共68页
数据结构旅游区导航图课程设计报告书_第3页
第3页 / 共68页
数据结构旅游区导航图课程设计报告书_第4页
第4页 / 共68页
数据结构旅游区导航图课程设计报告书_第5页
第5页 / 共68页
点击查看更多>>
资源描述

《数据结构旅游区导航图课程设计报告书》由会员分享,可在线阅读,更多相关《数据结构旅游区导航图课程设计报告书(68页珍藏版)》请在金锄头文库上搜索。

1、. . . . .数据结构课程设计报告题 目 旅游区导游图 专 业 计算机科学与技术 班 级 (2)班 学 生 # 13 旅游区导游图题目内容问题描述:设某个旅游区共有n个旅游景点(n10),每个旅游景点都和相邻的m个旅游景点(m2,mvexnum=0 ; G-arcnum=0 ; /* 初始化顶点数、边数 */return(G) ; ALGraph *Init_ALGraph()/* 图的初始化 */ ALGraph *G;G=(ALGraph *)malloc(sizeof(ALGraph) ;G-vexnum=0 ;G-arcnum=0; /* 初始化顶点数 */return(G) ;

2、图中顶点定位的函数,判断顶点是否重复输入了int LocateVex(MGraph *G, char vp) /* 图中顶点的定位,若图中有顶点vp,返回其在顶点数组的下标值 */ int k ;for (k=0; kvexnum; k+)if (G-vexsk=vp) return(k) ; 开始k=0返回-1kvexsk=vp?返回k结束k+return(-1) ; /* 图中无此顶点 */ N N Y Y 往图中增加顶点的函数void AddVertex(MGraph *G, char vp) /* 往图的顶点数组中增加顶点 */ int k, j ;if (G-vexnum=MAXVE

3、X)printf(图中顶点数已达到最多 !n); elseif (LocateVex(G, vp)=-1) k=G-vexnum ; G-vexsG-vexnum+=vp ;for (j=0 ; jvexnum ; j+) G-adjjk=INFINITY ;G-adjkj=INFINITY ;/* 是带权的有向图或无向图 */开始把这个点跟其他所有点建立关系,为INFINITY,表示不存在连通关系新增加一个顶点给k赋值=顶点总数调用函数LocateVex,判断顶点是否有重复判断顶点数目是否已经超过最大值结束 N Y N Y 往图的邻接矩阵中添加边(弧)void AddArc(MGraph *

4、G , ArcType *arc) /* 往图的邻接矩阵中添加边(弧) */ int k=0, j=0;k=LocateVex(G, arc-vex1) ;j=LocateVex(G, arc-vex2) ;if (k=-1|j=-1)printf(边或弧的顶点不存在,错误 !n) ; else G-arcnum+ ;G-adjkj=arc-ArcVal ;G-adjjk=arc-ArcVal ;/* 是无向图或带权的无向图,需对称赋值 */开始给两个顶点之间加上权值边数加一判断弧所依托的两个顶点是否存在结束输出图的顶点矩阵和邻接矩阵void output_graphic(MGraph *G)

5、 /* 输出图的顶点矩阵和邻接矩阵 */ int k, j ;printf(图的顶点如下:n) ; for (k=0; kvexnum; k+)printf(%4c,G-vexsk) ;printf(nn) ;printf(图的邻接矩阵如下:n) ; for (k=0; kvexnum; k+)for (j=0; jvexnum; j+)输出*判断两个顶点之间是否存在连通j+输出权值开始结束j=0k=0k+k=0输出第k个顶点判断j是否小于顶点总数判断k是否小于顶点总数判断k是否小于顶点总数k+if (G-adjkj=INFINITY) printf(%4s,*) ;else printf(%

6、4d,G-adjkj) ;printf(nn) ; Y N Y N Y以邻接矩阵作为图的存储结构建立图MGraph *create_graph()/* 以邻接矩阵作为图的存储结构建立图 */ char inchar100, enchar100,fvex,lvex ;int count=0;int weight ; MGraph *G;ArcType *arc ;printf(首先进行图的初始化!nn) ;G=(MGraph *)malloc(sizeof(MGraph) ;G=Init_MGraph() ;arc=(ArcType *)malloc(sizeof(ArcType) ; printf(n请以(顶点,顶点,权值)的形式输入图的边(或弧),第一个顶点是?表示结束:n) ; while(1) scanf(%s,inchar) ;fvex=inchar0 ; /* 输入第一个顶点,?结束 */ if (

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 教学/培训

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号