📄 graphmain.cpp
字号:
#include"graph1.h"
#include"graph2.h"
#include<stdlib.h>
void main(){
char input1;
int input2;
c:
do{
system("cls");
cout<<endl;
cout<<" ==================图的操作==========================="<<endl<<endl;
cout<<setw(20)<<0<<"------- 出口"<<endl;
cout<<setw(20)<<1<<"------- 图的建立与遍历操作"<<endl;
cout<<setw(20)<<2<<"------- 图的建立与拓朴排序"<<endl;
cout<<" ======================================================"<<endl;
cout<<endl<<"请选择/0/1/2:";
cin>>input1;
}while(input1<'0'||input1>'2');
switch(input1){
case '0':
cout<<endl<<" 再见!"<<endl;
exit(1);
case '1':
a:
do{
system("cls");
cout<<endl;
cout<<" ~~~~~~~~~~~~~~~~~~~~~~~图的建立与遍历操作~~~~~~~~~~~~~~~~~~~~~~~~~"<<endl<<endl;
cout<<setw(10)<<0<<".------出口"<<endl;
cout<<setw(10)<<1<<".------建立图的邻接矩阵"<<endl;
cout<<setw(10)<<2<<".------输出图从顶点V0出发按深度优先遍历的顶点序列"<<endl;
cout<<setw(10)<<3<<".------输出图从顶点V0出发按广度优先遍历的顶点序列"<<endl;
cout<<setw(10)<<4<<".------返回上一层菜单"<<endl;
cout<<" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"<<endl;
cout<<" 请选择: 0/1/2/3/4:";
cin>>input1;
}while(input1>'4'||input1<'0');
Matrix ga;
switch(input1){
case '0':
cout<<endl<<" 再见!"<<endl;
exit(1);
case '1':
system("cls");
cout<<endl;
cout<<"------------------------建立图的邻接矩阵-----------------------------"<<endl;
cout<<endl;
ga.InitMatrix();
ga.CreateMatrix();
ga.PrintMatrix();
system("pause");
goto a;
case '2':
system("cls");
cout<<endl;
cout<<"------------------输出图从顶点V0出发按深度优先遍历的顶点序列-----------"<<endl<<endl;
cout<<"请输入搜索起始顶点号(0~"<<ga.VertexNum-1<<"):";
cin>>input2;
ga.Initvisited();
ga.dfsMatrix(input2);
cout<<endl;
system("pause");
goto a;
case '3':
system("cls");
cout<<endl;
cout<<"----------------------输出图从顶点V0出发按广度优先遍历的顶点序列----------"<<endl<<endl;
cout<<endl;
cout<<"请输入搜索起始顶点号(0~"<<ga.VertexNum-1<<"):";
cin>>input2;
ga.bfsMatrix(input2);
cout<<endl;
system("pause");
goto a;
case '4':
goto c;
}
case '2':
GAdjoin gl;
b:
do{
system("cls");
cout<<endl;
cout<<" ~~~~~~~~~~~~~~~~图的建立与拓朴排序~~~~~~~~~~~~~~~~~~~"<<endl<<endl;
cout<<setw(30)<<"0.------出口"<<endl;
cout<<setw(40)<<"1.------建立图的邻接表"<<endl;
cout<<setw(42)<<"2.------输出图的拓朴序列"<<endl;
cout<<setw(40)<<"3.------返回上一层菜单"<<endl;
cout<<" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~`"<<endl;
cout<<"请选择: 0/1/2/3:";
cin>>input1;
}while(input1<'0'||input1>'3');
switch(input1){
case '0':
cout<<endl<<" 再见!"<<endl;
exit(1);
case '1':
system("cls");
cout<<endl;
cout<<"-------------------------------建立图的邻接表-------------------------------"<<endl;
cout<<endl;
gl.InitAdjoin();
gl.CreateAdjoin();
system("cls");
cout<<endl<<"邻接表:"<<endl;
gl.PrintAdjoin();
system("pause");
goto b;
case '2':
system("cls");
cout<<endl;
cout<<"---------------------------输出图的拓朴序列---------------------------------"<<endl;
cout<<endl;
cout<<"该图的拓扑序列是: ";
gl.Toposort();
system("pause");
goto b;
case '3':
goto c;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -