#include <iostream>
using namespace std;
#define MAX_VERTEX
class ArcNode {
public:
int adjvex;
ArcNode *next;
ArcNode() :next(NULL),adjvex(-
1) {}
};
class VNode {
public:
char data;
ArcNode *first;
VNode():first(
new ArcNode()){}
};
class Map {
VNode *vertices;
int vexnum;
int arcnum;
public:
Map(
int vnum,
int anum) {
vexnum = vnum;
arcnum = anum;
vertices =
new VNode[vexnum];
}
~Map() {
delete []vertices;
}
void CreateAdjList();
void Display();
};
void Map::CreateAdjList() {
for (
int i =
0; i < vexnum; i++)
vertices[i].data = i +
'A';
char h, t;
for (
int i =
0; i < arcnum; i++) {
cin >> h;
cin >> t;
ArcNode *p = vertices[h -
'A'].first;
while (p->next) {
p = p->next;
}
p->next =
new ArcNode();
p->adjvex = t -
'A';
}
}
void Map::Display() {
for (
int i =
0; i < vexnum; i++) {
ArcNode *p = vertices[i].first;
cout << i <<
' ' << vertices[i].data<<
'-';
if (!p)
return;
while (p->next) {
cout << p->adjvex <<
'-';
p = p->next;
}
cout<<
'^' << endl;
}
}
int main() {
int t;
cin >> t;
while (t--) {
int vnum, anum;
cin >> vnum >> anum;
Map map(vnum, anum);
map.CreateAdjList();
map.Display();
}
system(
"pause");
}
/**********输入
1
5 7
A B
A D
A E
B D
C B
C E
E D
***********/
/*********输出
0 A-1-3-4-^
1 B-3-^
2 C-1-4-^
3 D-^
4 E-3-^
************/
转载请注明原文地址: https://ju.6miu.com/read-680026.html