当前位置:首页 > 数据结构实验程序参考
while(1)
{ scanf(\ if(v1==0||v2==0) break;
g->arcs[v1-1][v2-1]=1; g->arcs[v2-1][v1-1]=1; } }
int visited[MAXVEX]; /*标志数组*/ dfstraverse (Mgraph g) { int v;
for(v=0;v dfs(Mgraph g, int v0) /* 从顶点v0出发遍历*/ { int j,v1; printf(\ for(j=0;j bfs(Mgraph g, int v0) { int u,v,v1; int front=-1, rear=-1, queue[MAXVEX]; for(v=0;v queue[++rear]=v0; while(front!=rear) { u=queue[++front]; for(v1=0;v1 if(g.arcs[u][v1] && !visited[v1]) { printf(\ queue[++rear]=v1; } } } void main() { Mgraph g; creat_Mgraph(&g); printf(\ printf(\ printf(\} 8.统计图中各顶点的入度和出度 算法1: count_degree(ALgraph g, int indegree[ ], int outdegree[ ]) { n=g.vexnum; for (i=0;i {indegree[i]=0; outdegree[i]=0;} for (i=0;i { p=g.adjlist[i].firstarc; while(p) {outdegree[i]++; j=p->adjvex; indegree[j]++; p=p->nextarc; } } } 算法2: count_degree(ALgraph g, int indegree[ ], int outdegree[ ]) { n=g.vexnum; for (i=0;i {indegree[i]=0; outdegree[i]=0;} for (i=0;i { p=g.adjlist[i].firstarc; while(p) {outdegree[i]++; p=p->nextarc;}} for (i=0;i for (j=0;j {p=g.adjlist[j].firstarc; while(p) {if(p->adjvex= =i); indegree[i]++; p=p->nextarc;} } }
共分享92篇相关文档