#include<iostream>
#include<vector>
#include<queue>
#include<stack>
using namespace std;
#define MAXVEX 100
typedef struct
{
int arc[MAXVEX][MAXVEX];
int vexs[MAXVEX];
int numvex;
int numedge;
}MGraph;
void CreateGraph(MGraph * G)
{
cout << "输入顶点个数和边数:" << endl;
cin >> G->numvex >> G->numedge;
cout << "输入顶点:" << endl;
for (int i = 0; i < G->numvex; i++)
{
cin >> G->vexs[i];
}
for (int i = 0; i < G->numvex; i++)
for (int j = 0; j < G->numvex; j++)
G->arc[i][j] = INT_MAX;
cout << "输入边:" << endl;
int i, j, w;
for (int k = 0; k < G->numedge; k++)
{
cin >> i >> j >> w;
G->arc[i][j] = w;
}
}
void CalulateInDegree(MGraph * G, vector<int> & InDegree)
{
for (int i = 0; i < G->numvex; i+