#include<iostream>
#include<cmath>
using namespace std;
struct Edgenode{ //边结点
int t; //大小道
int index;
int c;//道路长度公里
Edgenode *next; //指针声明要确定类型,不是int型
};
struct Dnode{//顶点结点
int data;
Edgenode *first; //边表头指针
};
class Grade{
public:
int n,m;//n个路口,m个道路
Dnode *D;//顶点数组
Grade();
void Create_Grade();
void print();
};
/*第一次意识到构造函数的重要性,如果这次编程把构造函数里的代码放到
create函数里则程序运行崩溃*/
Grade::Grade(){
cin>>n>>m;//输入顶点数,边数
D=new Dnode[n]; //顶点数组
for(int i=1;i<=n;i++){//给路口号初始化1,2,3,4。。。n
D[i].data=i;
D[i].first=NULL;
}
}
void Grade::Create_Grade(){
int t,a,b,c;
Edgenode *e;
for(int i=0;i<m;i++){
cin>>t>>a>>b>>c;
e=new Edgenode;
e->t=t;
e->index=b;
e->c=c;
e->next=NULL;
if(D[a].first==NULL)
D[a].first=e;
else{
e->next=D[a