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

📄 graphmain.cpp

📁 1
💻 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 + -