设计一个算法计算邻接表表示的图中任意顶点v的出度。边结点和邻接表的结构如下: typedef struct e
设计一个算法计算邻接表表示的图中任意顶点v的出度。边结点和邻接表的结构如下: typedef struct eNode { int adjVex; struct enode* nextArc; }ENode; typedef struct graph { int n; int e; ENode **a; }Graph 要求实现方法: int Degree(Graph g, int v)

回答
共1条回复-
typedef struct {int vertex[m]; int edge[m][m];}gadjmatrix; typedef struct node1{int info;int adjvertex; struct node1 *nextarc;}glinklistnode; typedef struct node2{int vertexinfo;glinklistnode *firstarc;}glinkheadnode; void adjmatrixtoadjlist(gadjmatrix g1[ ],glinkheadnode g2[ ]) { int i,j; glinklistnode *p; for(i=0;i<=n-1;i++) g2[i].firstarc=0; for(i=0;i<=n-1;i++) for(j=0;j<=n-1;j++) if (g1.edge[i][j]==1) { p=(glinklistnode *)malloc(sizeof(glinklistnode)); p->adjvertex=j; p->nextarc=g[i].firstarc; g[i].firstarc=p; p=(glinklistnode *)malloc(sizeof(glinklistnode)); p->adjvertex=i; p->nextarc=g[j].firstarc; g[j].firstarc=p; } }
