实验六 图的创建及应用(I)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
姓名学号
cout << endl << ">请选择功能:";
cin >> ch1;
switch (ch1)
{
case'1': //创建有向图
{
system("cls");
CreateGraph(MG);
cout << "操作完毕!" << endl;
system("pause");
system("cls");
continue;
}
case'2': //显示图信息
{
system("cls");
DisplayGraph(MG);
cout << "操作完毕!" << endl;
system("pause");
system("cls");
continue;
}
case'3': //返回上一界面
{
break;
}
default:
{
system("cls");
cout << "输入错误,请重新输入!" << endl;
continue;
}
}
system("cls");
break;
}
break;
}
case'2':
{
system("cls");
while (1)
{
minor_menu2();
char ch1;//二层菜单输入选择
cout << endl << ">请选择功能:";
cin >> ch1;
switch (ch1)
{
case'1'://创建图信息
{
system("cls");
CreateGraph(ALG);
cout << "操作完毕!" << endl;
system("pause");
system("cls");
continue;
}
case'2'://显示图信息
{
system("cls");
DisplayGraph(ALG);
cout << "操作完毕!" << endl;
system("pause");
system("cls");
continue;
}
case'3': //返回上一界面
{
break;
}
default:
{
system("cls");
cout << "输入错误,请重新输入!" << endl;
continue;
}
}
system("cls");
break;
}
break;
}
case'3':
{
system("cls");
while (1)
{
minor_menu3();
ALGraph R_ALG;
int i, j; //待搜索的顶点的位置
char ch1; //二层菜单输入选择
cout << endl << ">请选择功能:";
cin >> ch1;
switch (ch1)
{
case'1'://使用已创建的邻接表表示的图进行搜索
{
system("cls");
cout << "请输入待搜索的顶点v(i) 顶点v(j)(以空格分隔):";
cin >> i>> j;
int flag = exist_path_DFS(G, i, j);
if (flag)
cout << "搜索成功!存在顶点v(i):" << G.vertices[i].data << "顶点v(j):" << G.vertices[j].data << "的路径" << endl;
else
cout << "搜索失败!不存在顶点v(i):" << G.vertices[i].data << "到顶点v(j):" << G.vertices[j].data << "的路径" << endl;
cout << "操作完毕!" << endl;
system("pause");
system("cls");
continue;
}
case'2': //创建新图进行搜索
{
system("cls");
CreateGraph(R_ALG);
cout << "请输入待搜索的顶点v(i) 顶点v(j)(以空格分隔):";
cin >> i >> j;
int flag = exist_path_DFS(R_ALG, i, j);
if (flag)
cout << "搜索成功!存在顶点v(i):" << R_ALG.vertices[i].data << "到顶点v(j):" << R_ALG.vertices[j].data << "的路径" << endl;
else
cout << "搜索失败!不存在顶点v(i):" << R_ALG.vertices[i].data << "到顶点v(j):" << R_ALG.vertices[j].data << "的路径" << endl;
cout << "操作完毕!" << endl;
system("pause");
system("cls");
continue;
}
case'3': //返回上一界面
{
break;
}
default:
{
system("cls");
cout << "输入错误,请重新输入!" << endl;
continue;
}
}
system("cls");
break;
}
break;
}
case'4':
{
return 0;
}
default:
{
system("cls");
cout << "功能选择错误,请重新输入!" << endl;
break;
}
}
}
return 0;
}
void main_menu(void)
{
cout << endl;
cout << "==========================================================================" << endl;
cout << " 图的创建及应用 " << endl;
cout << "<<=========================功能选择========================>>" << endl;
cout << " 【1】邻接矩阵表示法 " << endl;
cout << " 【2】邻接表表示法 " << endl;
cout << " 【3】基于深度优先搜索判断是否存在指定位置的路径 " << endl;
cout << " 【4】退出程序 " << endl;
cout << "==========================================================================" << endl <<