正在加载图片...
PROc creat(var g: graph) readIn(n, e) FoR i To n Do [readIn(g[i]. vexdata): g[i]. first ENIL g[i]. firstout: =NIL FOR k: =1 TO e Do [readln (vt, vh i: = order (g, vt); j: =order (g, vh); new (p): p. vexi: =i: p. vexj: =j p p. nextI:=:(4);_(5): ENDP FUNC firstadj(g: graph; v: char): vtxptrO i:=order(g, v); p: =g[i].firstout IF p<>NIL THEN firstadj: =(6) ELSE firstadj: =0 FUNC nextadj (g: graph; v: char: w: char): vtxptrO i: =order(g, v): j: =order(g, w): p: =(7) WHILE (poNIL )AND (p. vexj>j)DO( 8) IF(9 AND (10) THen nextadj: = p. nexti. vexj ELSe nextadj: =0 ENDE PRoc dfs (g: graph: vO: char) write(v0: 2): visited [order(g, v0)]: =true; w: =(11) WHILE W<>0 [IF(12) then dfs(g, g[w]. vexdata) PROC traver(g: graph FOR i: =1 TO n DO visited[il: = false FOR i: =1 TO n DO IF NOT visited [i] then dfs(g, gli]. vexdata) ENDP BEGIN creat(ga): traver(ga) END.【北方交通大学1999三(20分)】 46.n个顶点的有向图用邻接矩阵 array表示,下面是其拓扑排序算法,试补充完整 注:(1).图的顶点号从0开始计:(2). indegree是有n个分量的一维数组,放顶 点的入度 (3).函数 crean用于算顶点入度:(4).有三个函数push(data),pop(), check() 其含义为数据data进栈,退栈和测试栈是否空(不空返回1,否则0)。 crein( array, indegree, n) I for (i=0; i<n; i++) indegree[i]=( for(i=0, i<n: i++) for (j=0; j<n: j++) indegree [i]+=array[(2) topsort (array, indegree, n) for (i=0; i<n; i++) if ((5) push(i)PROC creat(var g: graph); readln(n,e); FOR i:= 1 TO n DO [readln(g[i].vexdata); g[i].firstin :=NIL ; g[i].firstout:=NIL;] FOR k:= 1 TO e DO [readln (vt,vh); i:=order (g,vt); j:=order (g,vh); new (p); p^.vexi:=i ; p^.vexj:=j p^.nextj:= ____(2)____; ___(3)____ :=p; p^.nexti:=: ____(4)____; ___(5)____ :=p;] ENDP; FUNC firstadj(g:graph; v:char): vtxptr0; i:=order(g,v); p:=g[i].firstout; IF p<>NIL THEN firstadj:=(6)_______ELSE firstadj:=0; ENDF; FUNC nextadj(g:graph; v:char; w:char): vtxptr0; i:=order(g,v); j:=order(g,w); p:=(7)_______; WHILE(p<>NIL ) AND (p^.vexj<>j) DO(8)______; IF (9)______AND(10)______THEN nextadj:=p^.nexti^.vexj ELSE nextadj:=0; ENDF; PROC dfs(g:graph; v0:char); write(v0:2); visited[order(g,v0)]:=true; w:=(11)_______; WHILE w<>0 DO [IF (12)______ THEN dfs(g,g[w].vexdata); w:=(13)_______;] ENDP; PROC traver(g:graph); FOR i:=1 TO n DO visited[i]:=false; FOR i:=1 TO n DO IF NOT visited[i] THEN dfs(g,g[i].vexdata); ENDP; BEGIN creat(ga); traver(ga); END. 【北方交通大学 1999 三(20 分)】 46.n 个顶点的有向图用邻接矩阵 array 表示,下面是其拓扑排序算法,试补充完整。 注:(1).图的顶点号从 0 开始计; (2).indegree 是有 n 个分量的一维数组,放顶 点的入度; (3).函数 crein 用于算顶点入度;(4).有三个函数 push(data),pop( ),check( ) 其含义为数据 data 进栈,退栈和测试栈是否空(不空返回 1,否则 0)。 crein( array ,indegree,n) { for (i=0;i<n;i++) indegree[i]= ((1)_______) for(i=0,i<n;i++) for (j=0;j<n; j++) indegree[i]+=array[(2)_______][(3)_______]; } topsort (array,indegree,n) { count= ((4)_______) for (i=0;i<n;i++) if ((5)_______) push(i)
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有