⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 assignment2.cpp

📁 使用DIJKSTAR算法解决多点最短路径,还带文字解说
💻 CPP
字号:
#include<iostream>
#include<string>
#include<fstream>
#include "map.h"
#include "dijkstra.h"
#include <stdio.h>
using namespace std;

int fun();

int main()
{
	fun();
/*
	//数据初始化定义;
    string* a = NULL;
    int number = 0 , kmSize = 0, i = 0;
	double* km = NULL;

    //数据读入临时保存。
	ifstream file("input1.txt");
	file>>number;
    a = new string[number];
	for( i = 0; i < number; i++)
		file>>a[i];
    kmSize = number * (number-1)/2;
    km = new double[kmSize];
	for( i = 0; i < kmSize; i++)
		file>>km[i];

	//数据保存
    map a1(number);
	a1.setMap(a,km);
	
	cout<<"Start City Index"<<endl;
	int nStart = 0;
	cin>>nStart;
	cout<<"Start City:"<<a[nStart]<<endl;

	
    //dijkstra算法使用
	dijkstra dij;
	dij.SetStartTownIndex(nStart);
	dij.printResult(dij.doDijkstra(&a1, a), number);
	
	//删除指针,程序退出。
	delete km; 

	cout<<"Press Enter to Exit"<<endl;
	*/
int exit = getchar();

int nStart = 0;
cin>>nStart;


	return 0;

}


int fun()
{
	string *sCityName = NULL;		//保存城市名
	int nCityNum = 0, i;	
	int kmSize = 0;
	double *km = NULL;				//保存每个城市间的距离

	string sInputFiles;
	
	//选择输入文件 
INPUT:
	cout<<"your Input Files:"<<endl;
	cin>>sInputFiles;
	
	ifstream file(sInputFiles.c_str());
	if (!file.is_open())		//判断输入的输入文件是否存在  
	{
		cout<<"BAD Input Files"<<endl;
		goto INPUT;		//回到文件输入点 重新选择输入文件
	}

	//读文件
	file>>nCityNum;
    sCityName = new string[nCityNum];
	//读取城市名
	for(i = 0; i < nCityNum; i++)
		file>>sCityName[i];
	//读取城市间距离
    kmSize = nCityNum * (nCityNum-1)/2;
    km = new double[kmSize];
	for(i = 0; i < kmSize; i++)
		file>>km[i];

	//保存数据 
	map CityMap;
	CityMap.setMap(sCityName, km);

	//选择一个城市序号 (从0开始)  下面将输出该城市到其他城市的最短距离
	cout<<"Start City Index:"<<" (zero-based index of citys) "<<endl;
	int nStart = 0;
	cin>>nStart;
	//输出用户选择城市的名字
	cout<<"Start City:"<<sCityName[nStart]<<endl;

    //dijkstra算法使用
	dijkstra dij;
	dij.SetStartTownIndex(nStart);
	RArray *ResultArray = dij.doDijkstra(&CityMap, sCityName);

	dij.printResult(ResultArray, nCityNum );

	return 0;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -