大二数据结构实验之校园导游咨询程序(C++)

校园导游咨询

【问题描述】
设计一个校园导游程序,为来访的客人提供各种信息查询服务。

【基本要求】

  1. 设计你的学校的校园平面图,所含景点不少于10个。以图中顶点表示学校各景点,存放景点名称、代号、简介等信息;以边表示路径,存放路径长度等相关信息。
  2. 为来访客人提供图中任意景点的问路查询,即查询任意两个景点之间的一条最短的简单路径。
  3. 为来访客人提供图中任意景点相关信息的查询。

【测试数据】
由读者根据实际情况指定。

【实现提示】
一般情况下,校园的道路是双向通行的,可设校园平面图是一个无向网。顶点和边均含有相关信息。

#include <iostream>
#include <algorithm>
#include <string>
using namespace std;

#define OK 1
#define ERROR 0
#define MaxInt 32767        //极大值
#define MVNum 50            //最大顶点数

typedef int Status;
typedef string VerTexType;  //假设顶点的数据类型为string类型
typedef string InfoType;
typedef int ArcType;        //假设边的权值类型为整型

bool visited[MVNum];        //访问标志数组,值为"false"时代表该顶点没被访问,值为"true"时代表该顶点已被访问

typedef struct vex{
    VerTexType name;
    InfoType otherinfo;
}vex, *vexptr;

//图的邻接矩阵存储表示
typedef struct{
    vex vexs[MVNum];                    //顶点表
    ArcType arcs[MVNum] [MVNum];        //邻接矩阵
    int vexnum, arcnum;                 //图的当前点数和边数
}AMGraph; 

//获取顶点位置:若G中存在顶点u,则返回该顶点在图中的位置;否则返回其他信息
int LocateVex(AMGraph G, VerTexType u){
    int index = -1;                         //原始下标,没找到元素返回-1 
    for(int i = 0; i < G.vexnum; i++){      //遍历顶点数组
        if(u == G.vexs[i].name){
            index = i;                      //记录元素下标
        }
    } 
    return index;                           //返回下标
}

//采用邻接矩阵表示法创建无向网G,表示地图
Status CreateUDN(AMGraph &G){
    G.vexnum = 13;
    G.arcnum = 18;

    G.vexs[0].name = "菊苑饭堂";
    G.vexs[0].otherinfo = "菊苑饭堂简介"; 
    G.vexs[1].name = "梅苑饭堂
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值