资源描述:
《数据结构课程设计-校园导游》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、数据结构课程设计报告实验三:校园导游一、设计要求用无向图表示校园景点平面图,图中顶点表示主要景点,存放景点的编号、名称、简介等信息,图中的边表示景点间的道路,存放路径长度等信息。要求能够回答有关景点介绍、游览路径等问题。要求:(1)查询任意景点的相关信息(2)查询图中任意两个景点间的最短路径(3)查询图中任意两个景点间的所有路径(4)增加、删除、更新有关景点和道路的信息实际输入输出情况如下:(1)有关景点和路线的操作(2)查看现有导游路线图(3)对景点信息的增删改与查询增加景点删除景点更改景点信息查询景点信息(4)对道路信息的增删改增加道路删除道路更改道
2、路信息(5)查询两景点间所有路径(6)查询两景点间最短路径(7)查询经过多个景点的最短路径一、数据结构与算法描述1、校园导游的数据结构整个校园导游图以一个无向加权图描述,采用邻接表作为实现图结构的方式。(1)景点结构每个景点是一个链表,其结构如下:#pragmaonce#include#include"GraphNode.h"usingnamespacestd;classGraphVertex{friendclassDiGraph;friendostream&operator<<(ostream&os,DiGraph&DG);protec
3、ted:intvertexid;stringname;GraphNode*head;stringinformation;boolflag;//到达该点的标记public:GraphVertex(){vertexid=0;name="";head=0;flag=false;information="";}GraphVertex(intvertexid,stringname){this->vertexid=vertexid;this->name=name;head=0;flag=false;};~GraphVertex(){};intLength()cons
4、t;//该顶点的度boolFind(intgoal,GraphNode*&index)const;//查找该顶点和goal之间是否有路径,如果找到则将该路径指针的引用保存在indexboolinsert(intgoal,intlength,stringroadname);//按照权值递增规则将顶点goal插入该顶点链表boolDelete(intgoal);//删除该顶点和goal间的路径};(2)路线的结构邻接链表中的每个节点代表了一条路线,其结构如下:#pragmaonce#includeusingnamespacestd;class
5、GraphNode{friendclassGraphVertex;public:inttovertex;intlength;stringroadname;GraphNode*next;GraphNode(intto,intlength,stringroadname="",GraphNode*next=0){this->length=length;this->tovertex=to;this->roadname=roadname;this->next=next;};~GraphNode(){};intoperator==(GraphNodey)const{
6、returnthis->tovertex==y.tovertex;}};(3)图结构整个图的结构是用链表的数组表示,为了使景点的添加删除操作可以充分地利用该数组空间,对该数组使用模拟指针的结构进行描述。#pragmaonce#include"GraphVertex.h"#include"GraphNode.h"#include"simNode.h"classDiGraph{friendostream&operator<<(ostream&os,DiGraph&DG);friendintmain();private:intn;inte;GraphVerte
7、x*v;Simspace*sp;intMaxN;voidgetpath(intfrom,intto,int**kay,int**l,string&path);voidgetallpath(intfrom,intto,string&path_temp);public:DiGraph(intMaxN=100){this->MaxN=MaxN;n=0;e=0;v=newGraphVertex[MaxN+1];sp=newSimspace(MaxN);};~DiGraph(){delete[]v;deletesp;};intfindid(stringname);
8、DiGraph&addV(stringname,stringinformatio