正在加载图片...
G vexnum=y scanf("%d", &a) if(a<0) return error,∥边数不能为负 for(m=0; m<v, m++) G vertices(m]data= getchar(,∥输入各顶点的符号 for(m=l; m<=a; m++) t= getchar(;h= getchar(;t为弧尾h为弧头 if((i=Locate Vex(G, t))<)return ERROR; if(= Locate vex(G,h)<0) return error:∥顶点未找到 p=(ArcNode*)malloc(sizeof( ArcNode) if(G vertices.[i]. firstarc)G vertices[] firstarc=p: for(q=Gvertices[]. firstarc; q->nextarc: q=q->nextarc) p->adjvex=j p->nextarc=NULL, i//while return OK. 1//Build Adj List 2.【严题集718】试在邻接矩阵存储结构上实现图的基本操作: Deleteare(G,v,w),即删除一条边的操 作。(如果要删除所有从第i个顶点出发的边呢?提示:将邻接矩阵的第i行全部置0) 解:∥本题中的图G均为有向无权图。 Status Delete Arc( MGraph& G char v, char w在邻接矩阵表示的图G上删除边(vw) if((i=Locate Vex(G, v))<0) return ERROR; if(=Locate Vex(G, w))<0) return ERROR if(G arcs[1[).adi G arcs[i[]adj=0; G arc return OK 3.【严题集7.22③】试基于图的深度优先搜索策略写一算法,判别以邻接表方式存储的有向图中是否存 在由顶点v到顶点v的路径(i≠j)。注意:算法中涉及的图的基本操作必须在此存储结构上实 nt visited MAXSIZE]∥指示顶点是否在当前路径上 nt exist path DFS( ALGraph G,nti,intj)∥深度优先判断有向图G中顶点i到顶点j 是否有路径,是则返回1,否则返回07 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 2. 【严题集 7.15③】试在邻接矩阵存储结构上实现图的基本操作:DeleteArc(G,v,w) ,即删除一条边的操 作。(如果要删除所有从第 i 个顶点出发的边呢? 提示: 将邻接矩阵的第 i 行全部置 0 ) 解://本题中的图 G 均为有向无权图。 Status Delete_Arc(MGraph &G,char v,char w)//在邻接矩阵表示的图 G 上删除边(v,w) { if((i=LocateVex(G,v))<0) return ERROR; if((j=LocateVex(G,w))<0) return ERROR; if(G.arcs[i][j].adj) { G.arcs[i][j].adj=0; G.arcnum--; } return OK; }//Delete_Arc 3. 【严题集 7.22③】试基于图的深度优先搜索策略写一算法,判别以邻接表方式存储的有向图中是否存 在由顶点 vi 到顶点 vj的路径(i≠j)。注意:算法中涉及的图的基本操作必须在此存储结构上实现。 int visited[MAXSIZE]; //指示顶点是否在当前路径上 int exist_path_DFS(ALGraph G,int i,int j)//深度优先判断有向图 G 中顶点 i 到顶点 j 是否有路径,是则返回 1,否则返回 0 {
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有