This repository has been archived on 2024-01-06. You can view files and clone it, but cannot push or open issues or pull requests.
justhomework/ex11/ex11.cpp
2021-12-10 17:08:32 +08:00

73 lines
No EOL
1.8 KiB
C++

#include "graph.hpp"
#include <iostream>
#include <stdio.h>
int main()
{
// typedef struct data
// {
// int id;
// std::string name;
// }data;
graphVertex<int, std::string> gv;
int op, id1, id2, w;
std::string name;
while (1)
{
printf("选择操作:1添加/覆盖节点2添加边3删除节点4删除边5显示图\n");
scanf("%d", &op);
switch (op)
{
case 1:
printf("分别输入序号 节点名:");
std::cin >> id1 >> name;
printf("插入到ID位%d的位置\n", gv.insect(id1, name));
break;
case 2:
printf("分别输入起始节点序号 到达节点序号 边权重:");
std::cin >> id1 >> id2 >> w;
if(id1==id2)
printf("失败\n");
switch (gv.link(id1, id2, w))
{
case 0:
printf("成功\n");
break;
case -1:
printf("顶点不存在\n");
break;
case -2:
printf("边已经存在\n");
break;
}
break;
case 3:
printf("输入节点序号:");
std::cin >> id1;
gv.remove(id1);
break;
case 4:
printf("分别输入起始节点序号 到达节点序号:");
std::cin >> id1 >> id2;
switch (gv.unlink(id1, id2))
{
case 0:
printf("成功\n");
break;
case -1:
printf("顶点不存在\n");
break;
case -2:
printf("边不存在\n");
break;
}
break;
case 5:
gv.display();
default:
break;
}
}
return 0;
}