收藏 分享(赏)

数据结构课程设计--烟台大学.doc

上传人:dreamzhangning 文档编号:2607470 上传时间:2018-09-23 格式:DOC 页数:13 大小:130KB
下载 相关 举报
数据结构课程设计--烟台大学.doc_第1页
第1页 / 共13页
数据结构课程设计--烟台大学.doc_第2页
第2页 / 共13页
数据结构课程设计--烟台大学.doc_第3页
第3页 / 共13页
数据结构课程设计--烟台大学.doc_第4页
第4页 / 共13页
数据结构课程设计--烟台大学.doc_第5页
第5页 / 共13页
点击查看更多>>
资源描述

1、烟台大学数据结构课程设计报告站点分布图(二)班级:计 123-2姓名:樊磊学号:201258503232问题描述:尽可能多的列出烟台的公交站点。用图创建一个站点分布图,包括站点的增加、删除、从一点出发深度优先搜索所有的站点、从一点出发广度优先搜索所有的站点。数据结构与算法的设计:通过分析决定采用无向图结构,采用了深度优先遍历(DFS) ,广度优先遍历(BFS)等算法。程序实现:实现了深度优先输出所有站点,广度优先输出所有站点,增加站点,删除站点。测试及分析:源代码选摘:/-邻接矩阵转化成邻接表-/void MatToList(MGraph g,ALGraph *ArcNode *p; G=(A

2、LGraph *)malloc(sizeof(ALGraph);for(i=1;iadjlisti.firstarc=NULL;for(i=1;i=1;j-)if(g.edgesij!=0)p=(ArcNode *)malloc(sizeof(ArcNode); /创建一个节点 *pp-adjvex=j; /该边的终点号p-nextarc=G-adjlisti.firstarc; /采用头插法插入 *pG-adjlisti.firstarc=p; G-n = g.n;G-e = g.e;/-深度优先遍历 -/int visitedMAXV;void DFS(ALGraph *G,int v)

3、/v 表示顶点ArcNode *p;visitedv=1; /置已访问标记coutadjlistv.firstarc;while(p!=NULL)if(visitedp-adjvex=0) /p-adjvex 顶点未访问,递归访问它DFS(G,p-adjvex);p=p-nextarc; /p 指向顶点 V 的下一个邻接点/-广度优先遍历 -/ i 既是他的顶点编号void BFS(ALGraph *G,int v)ArcNode *p;int queueMAXV,front=0,rear=0; /定义循环队列并初始化队头队尾int visitedMAXV; /定义存放顶点的访问标志的数组in

4、t w,i;for(i=0;in;i+) /访问标志数组初始化visitedi=0;coutadjlistw.firstarc; /找顶点 W 的第一个邻接点while(p!=NULL)if(visitedp-adjvex=0) /若当前邻接顶点未被访问coutadjvexadjvex=1; /置顶点已被访问的标志为 1rear=(rear+1)%MAXV; /该顶点进队queuerear=p-adjvex;p=p-nextarc; /找顶点 W 的下一个邻接点coutm;g.e=g.e+m;int i,j;int p=0;while(pi;coutj;g.edgesij=1;g.edgesj

5、i=1;p+;outputLJJZ(g);MatToList(g,G);/-深度优先遍历-/for(int k=0;kn;k+) /初始化访问标记数组visitedk=0;int start=0; /从哪开始遍历coutstart;coutm;int p=0;while(pn;k+) /初始化访问标记数组visitedk=0;int start=0; /从哪开始coutstart;cout“执行深度优先遍历。 。 。 。 。 。“endl;coutendl;DFS(G,start);coutendl;/-广度优先遍历-/cout“执行广度优先遍历。 。 。 。 。 。“endl;coutend

6、l;BFS(G,start);总结:以前做实验题目的时候总是感觉很难,因为根本就不知道从哪里开始。这次课程设计让我对编程有了新的认识。 拿到题目的时候也是很困惑,后来看了很多有关的例子,仔细看了书上的线性表部分的知识,觉得就是上课讲到的一些内容,不题目难,是自己先把自己吓住了。 后来,参照书上的和网上的诸多例子,一个模块一个模块的编写,调试,一个功能一个功能去完善。发现越做越顺利,由于以前的实验中对于改错的经验积累和几个学得不错的同学的帮助,我的程序中的错误也一个一个的顺利解决。 其实,从这次实验中我认识到,我的差距还很大,编程有很多的乐趣也有很多的技巧性和知识性。我将在以后的日子里继续认真的学习知识,积累经验,让自己的编程能力提高。

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

当前位置:首页 > 高等教育 > 大学课件

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报