'graph.h'这个库文件是要自己写的,不是系统给的。2楼的都把代码给出来了 \\\\graph.h---类的声明,包含在这个文件中 class Graph {public:
Graph(int point); ~Graph();
Graph& addpath(int point1,int point2); Graph& addview(int point);
void addinformation(int point); bool searchview(int point); void shortdistance(); void showgraph(); private:
int **graph; -------二维数组
char **information ----景点的信息说明 int number;};
\\\\graph.cpp---类的实现 #include Graph::Graph(int point) {number=point; graph=new int*[point+1]; fot(int i=0;i<=point;i++) graph[i]=new int[point]; for(int i=0;i<=number;i++) for(int j=0;j<=number;j++) graph[i][j]=0; information=new char*[number+1]; for(int i=0;i<=number;i++) information[i]=new char[100];} void Graph::addinformation(int point) {cout<<\"请输入第\"< Graph::~Graph() {for(int i=0;i {cout<<\"这条边已经存在,已经不能在插入!\"< Graph& Graph::addview(int point) {int **p=new int*[point+1]; for(int i=0;i<=point;i++) p[i]=new int[point]; for(int i=0;i<=point;i++) for(int j=0;j<=point;j++) p[i][j]=0; for(int j=1;j<=number;j++) for(int i=1;i<=number;i++) p[i][j]=graph[i][j]; char**pp=new char*[point+1]; for(int i=0;i<=point;i++) pp[i]=new char[100]; for(int i=1;i<=number;i++) strcpy(pp[i],information[i]) number=point; information=pp; graph=p; return *this;} Graph& Graph::addpath(int point1,int point2) {if(graph[point1][point2]==1||graph[point2][point1]==1) throw error; ----这个还没有开始定义了 graph[point1][point2]=graph[point2][point1]=1; return *this; } bool Graph::searchview(int point) {if(point<0||point>number) {cout<<\"你所查询的景点不存在\"< {int **t=new int*[number+1]; for(int i=0;i<=number;i++) t[i]=new int[number+1]; for(int i=0;i<=number;i++) for(int j=0;j<=number;j++) t[i][j]=graph[i][j]; int **path=new int*[number+1]; for(int i=0;i<=number;i++) t[i]=new int[number+1]; for(int i=0;i<=number;i++) for(int j=0;j<=number;j++) t[i][j]=0; for(int k=1;k<=number;k++) for(int i=1;i<=number;i++) for(int j=1;j<=number;j++) {int t1=t[i][j]; int t2=t[i][k]; int t3=t[j][k]; if(t1==0&&t2!=0&&t3!=0||t2+t3 cout<<\"你所要的最短路径经过\"< //main函数的实现 #include using namespace std; void main() {char judgement='Y'; int flags; while(judgement=='Y') { cout< case 1:{int max;cout<<\"请输入景点的个数\"< case 2:{int p1,p2;cout<<\"请是输入你要增加路径的两个景点\"< case 4:{int p;cout<<\" 请输入你要加入有关信息的景点名字\"< \"< \"< cout<<\"是否要继续操作,如果是,请按“Y”,否则请按任意键\"< 因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- 69lv.com 版权所有 湘ICP备2023021910号-1
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务