正在加载图片...
第七章图 7.14 Status Build AdjList( ALGraph&G输入有向图的顶点数边数顶点信息和边的 信息建立邻接表 InitAL Graph(G); nf("%d", &v); fyv< O) return ERROR;/顶点数不能为负 scanf("%d", &a) fa<O) return error,边数不能为负 G arcum=a for(m=0; m<v; m++) G vertices]data= getchar,输入各顶点的符号 for(m=l; m<=a; m++) t= getchar: h= getchar(,t为弧尾h为弧头 if(LOcate Vex(G, t))<)return ERROR if(= Locate Vex(Gh)0) return error;∥顶点未找到 =(ArcNode*)malloc(sizeof(ArcNode)); if(IG vertices. [i]. firstarc)G vertices[]. firstarc=p for(q=G vertices[]. firstarc; q->nextarc; q=q->nextarc); q->nextare-p; p->adjvex=i p->nextarc=NULL i//while eturn OK i//Build AdjList 7.15 ∥本题中的图G均为有向无权图,其余情况容易由此写出 Status Insert vex( MGraph&G, char v/在邻接矩阵表示的图G上插入顶点ⅴ If(G. vexnum+lPMAX VERTEX NUM return INFEASIBLE, G vex++G. vexnum=v eturn oK g//nsert Vex第七章 图 7.14 Status Build_AdjList(ALGraph &G)//输入有向图的顶点数,边数,顶点信息和边的 信息建立邻接表 { InitALGraph(G); scanf("%d",&v); if(v<0) return ERROR; //顶点数不能为负 G.vexnum=v; scanf("%d",&a); if(a<0) return ERROR; //边数不能为负 G.arcnum=a; for(m=0;m<v;m++) G.vertices[m].data=getchar(); //输入各顶点的符号 for(m=1;m<=a;m++) { t=getchar();h=getchar(); //t 为弧尾,h 为弧头 if((i=LocateVex(G,t))<0) return ERROR; if((j=LocateVex(G,h))<0) return ERROR; //顶点未找到 p=(ArcNode*)malloc(sizeof(ArcNode)); if(!G.vertices.[i].firstarc) G.vertices[i].firstarc=p; else { for(q=G.vertices[i].firstarc;q->nextarc;q=q->nextarc); q->nextarc=p; } p->adjvex=j;p->nextarc=NULL; }//while return OK; }//Build_AdjList 7.15 //本题中的图 G 均为有向无权图,其余情况容易由此写出 Status Insert_Vex(MGraph &G, char v)//在邻接矩阵表示的图 G 上插入顶点 v { if(G.vexnum+1)>MAX_VERTEX_NUM return INFEASIBLE; G.vexs[++G.vexnum]=v; return OK; }//Insert_Vex
向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有