资源简介
设计四川大学的校园平面图,至少包括10个以上的地点,每两个地点间可以有不同的路,且路长可能不同。以图中顶点表示校内各地点,存放名称、代号、简介等信息;用边表示路径,存放路径长度等相关信息。(要求使用真实地点及其位置)
代码片段和文件信息
#include
#include
using namespace std;
const int MAXNUM = 15;
struct ArcCell
{
int adj;
string info; //该弧相关的信息的指针
};
struct Node
{
string name;
string data ;
};
ArcCell **arcs; //邻接矩阵
Node vvec[15];
int vexnum; //图的当前顶点个数
int arcnum; //图的弧数
int prev[MAXNUM];
const int MAXINT = 999;
int dist[MAXNUM];
void MGraph(int vexNum)
{
vexnum=vexNum;
//分配顶点向量数组
vvec[0].name=“西南门“;vvec[0].data=“四川大学江安校区的西南门。街对面有67路公交站“;
vvec[1].name=“南门“;vvec[1].data=“四川大学江安校区的南门。街对面是江安花园,门内有人造喷泉。“;
vvec[2].name=“东南门“;vvec[2].data=“四川大学江安校区的东南门。“;
vvec[3].name=“东门“;vvec[3].data=“四川大学江安校区的东门。“;
vvec[4].name=“7舍“;vvec[4].data=“软件学院和计算机学院的宿舍“;
vvec[5].name=“一餐“;vvec[5].data=“一号餐厅“;
vvec[6].name=“二餐“;vvec[6].data=“二号餐厅“;
vvec[7].name=“青广“;vvec[7].data=“校园青春广场,学生活动的场所“;
vvec[8].name=“一教“;vvec[8].data=“第一教学楼区,有A、B、C、D四个教学楼“;
vvec[9].name=“图书馆“;vvec[9].data=“四川大学江安校区的图书馆有5楼,应用了数字化图书馆“;
vvec[10].name=“二基楼“;vvec[10].data=“第二基础实验楼,包含了化学、物理、计算机实验室,其中一部分是计算机软件学院的办公楼。“;
vvec[11].name=“综合楼“;vvec[11].data=“综合楼也叫“逸夫楼”,有大型的阶梯教室,也有设备精良的小班教室“;
vvec[12].name=“体育馆“;vvec[12].data=“体育馆通常是羽毛球的练习场,楼上有瑜伽室和跆拳道道馆“;
vvec[13].name=“文科楼“;vvec[13].data=“文科楼我只去过几次“;
vvec[14].name=“长桥“;vvec[14].data=“学生上课必经的长桥,桥下是美丽的明远湖“;
//动态分配二维数组, 注意二维数组的动态分配
arcs = new ArcCell *[vexnum];
for (int i = 0; i < vexnum; i++)
{
//为每一行动态分配空间
arcs[i] = new ArcCell[vexnum];
}
}
//初始化顶点数组和邻接矩阵
void Init()
{ // 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14
for (int i = 0; i < vexnum; i++)
{
ArcCell ac;
ac.adj = MAXINT;
ac.info = ‘0‘;
for (int j = 0; j < vexnum; j++)
{
arcs[i][j] = ac;
}
}
}
//构造一个带权无向图
void Create()
{
Init();
arcnum = 32;
arcs[0][7].adj = arcs[7][0].adj = 3;
arcs[7][5].adj = arcs[5][7].adj = 1;
arcs[5][6].adj = arcs[6][5].adj = 2;
arcs[6][4].adj = arcs[4][6].adj = 1;
arcs[7][4].adj = arcs[4][7].adj = 2;
arcs[7][14].adj = arcs[14][7].adj = 1;
arcs[14][8].adj = arcs[8][14].adj = 2;
arcs[14][9].adj = arcs[9][14].adj = 2;
arcs[9][8].adj = arcs[8][9].adj = 1;
arcs[9][10].adj = arcs[10][9].adj = 1;
arcs[10][13].adj = arcs[13][10].adj = 2;
arcs[13][3].adj = arcs[3][13].adj = 1;
arcs[13][12].adj = arcs[12][13].adj = 1;
arcs[12][2].adj = arcs[2][12].adj = 1;
arcs[8][11].adj = arcs[11][8].adj = 1;
arcs[11][1].adj = arcs[1][11].adj = 1;
}
void displayGraph()
{
cout << “总共有“ << vexnum << “个地点,“
<< arcnum << “路径“ << endl;
for (int i = 0; i < vexnum; i++)
{
cout << “第“ << i+1 << “个地点是:“ << vvec[i].name <<“ “
<< “相邻的地点有: “;
for (int j = 0; j < vexnum; j++)
{
if (arcs[i][j].adj != MAXINT)
cout << vv
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 5727 2017-12-21 17:49 数字化校园\main.cpp
文件 89649 2016-12-20 17:27 数字化校园\main.o
文件 1379 2016-12-20 17:27 数字化校园\Makefile.win
文件 1122371 2017-12-31 02:45 数字化校园\陈金裕_2014141463009.docx
文件 898 2016-12-19 21:16 数字化校园\项目1.dev
文件 1399136 2016-12-20 17:27 数字化校园\项目1.exe
文件 95 2016-12-20 17:28 数字化校园\项目1.layout
目录 0 2017-12-31 13:40 数字化校园
----------- --------- ---------- ----- ----
2619255 8
- 上一篇:ppc 塞班模拟器
- 下一篇:myeclipse2015keygen.rar
相关资源
- VS2010下基于QT4.8.2开发的计算城市间最
- 一种改进的Dijkstra算法的分析及程序实
- 链路状态路由算法dijkstra算法
- Dijkstra算法源代码
- 几种堆(BinFibPair)在Dijkstra算法上的
- dijkstra算法—求解最短路问题
- dijkstra算法在AGV调度系统的应用
- Dijkstra算法详细讲解.ppt
- Dijkstra算法求任意两个城市之间最短路
- 求最短路径Dijkstra算法
- Dijkstra算法实现天津地铁最短路径查找
- Dijkstra算法可视化js实现
- dijkstra算法R语言
- 基于Dijkstra算法的路径规划算法
- 几种堆(BinaryHeap FibHeap PairHeap)在D
- Dijkstra算法的流程图
评论
共有 条评论