算法:Dijkstra最短路,DFS
数据结构:邻接矩阵
// xydy.cpp : 定义控制台应用程序的入口点。
//
//#include "stdafx.h"
#include "iostream"
#include "cstdio"
#include "string"
#include "cstring"
#include "stack"
#define N 100
#define INF 200
#define max(a,b) a>b?a:b
#define min(a,b) a<b?a:b
using namespace std;
struct Node
{
int num; //景点代码
string name;//景点名称
string pro; //简介
};
Node school[N]=
{
{ 1,"行政楼","" },{ 2,"食堂","" },
{ 3,"赛博楼","信息分院办公室所在地"},{ 4,"求是楼","实验楼计算机中心"},
{ 5,"格致楼","法学管理学院" },{ 6,"工程实习中心","金工实习" },
{ 7,"仰仪楼","机电计测分院" },{ 8,"体育馆","旁边有篮球场`足球场`还有网球场" },
{ 9,"一号教学楼","主要以阶梯教室为主"},{ 10,"二号教学楼","小教室为多" }
};
long long Edge[N][N]; //邻接矩阵存路径
int nodenum; //节点总数
void Initial()
{
nodenum = 10;
memset(Edge, -1, sizeof(Edge));
}
void Insert_node()
{
cout << "请输入:编号(0结束添加) 景点名 简介" << endl;
int n;
while (cin >> n&&n)
{
bool flag = 0;
string name, pro;
cin >> name >> pro;
for (int i = 0; i < nodenum; i++)
{
if (school[i].num == n)
{
cout << "编号重复,请重新输入编号" << endl;
flag = 1;
break;
}
}
if (flag == 1)
continue;
nodenum++;
school[nodenum - 1].num = n;
school[nodenum - 1].name = name;
school[nodenum - 1].pro = pro;
}
}
void Insert_edge()
{
cout << "请输入:起始景点编号 终止景点编号 路径长度(0 0 -1结束)" << endl;
int from, to;
long long value;
while (cin >> from >> to >> value && from && to && (value!=-1))
{
bool flag1 = 0, flag2 = 0;