#include <iostream> #include <cstring> using namespace std; #define E 10000 #define V 100 struct Edge{ int to_node; int edge_val; int next_edge; Edge(){} Edge( int to, int val, int next ){ to_node = to; edge_val = val; next_edge = next; } }; Edge edges[E]; int heads[V]; int nEdgeNum, nNodeNum; int nEdgeCount; void addEdge( int from, int to, int dist ){ edges[nEdgeCount].to_node = to; edges[nEdgeCount].edge_val = dist; edges[nEdgeCount].next_edge = heads[from]; heads[from] = nEdgeCount; nEdgeCount++; } void showGraph(){ for( int i = 1; i <= nNodeNum; ++i ){ cout << i; for( int j = heads[i]; ~j; j = edges[j].next_edge ){ cout << "-->" << edges[j].to_node << "(" << edges[j].edge_val << ")"; } cout << "-->NULL" << endl; } } int main(){ int from, to, dist; while( cin >> nNodeNum >> nEdgeNum ){ memset( heads, -1, sizeof( heads ) ); for( int i = 1; i <= nEdgeNum; ++i ){ cin >> from >> to >> dist; addEdge( from, to, dist ); } showGraph(); } return 0; }
时间: 2024-10-09 00:45:08