邻接表 数组实现
#include<stdio.h> int main() { int n,m,i; int u[6],v[6],w[6]; int first[5],next[6]; //first记录每个点连接的第一边,e.g:first[u[i]]表示点u[i]能到达的第一个点 //next[i]表示编号为i的边的下一条边的编号 scanf("%d %d",&n,&m); for(i=1;i<=n;i++) first[i]=-1;//表示现在还没有边 for(i=1;i<=m;i++){//i表示变得编号 scanf("%d %d %d",&u[i],&v[i],&w[i]); next[i]=first[u[i]];//倒序记录的,先输入的为next first[u[i]]=i;//后输入的为first } printf("\n\n\n"); for(i=1;i<=n;i++){ int k=first[i]; while(k!=-1){ printf("%d %d %d\n",u[k],v[k],w[k]); k=next[k]; } } return 0; }
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。