正在加载图片...
int FindCycle(ALGraph*G, int 1) ∥若回路存在,则返回1,否则返回0 for(=0; j<G->n;j++)cycle path[l=-1 return DFSPath(G,1,i) int DFSPath(ALGraph *G, int j, int i EdgeNode*p: Int cycled=0 for(p=G->adjlist[i]. firstedge; p&&! cycled; p=p->next) ycle path[l=p->adjvex; rcled=1;∥已找到回路 if(cycle pathp->adjvex]==-1)cycled=(2) return 33阅读下列函数algo,并回答问题 (1)假设整型数组A[1.8]中的元素依次为(3,8,9,1,7,4,2,6)。执行函数调用algo(A,8)时 外层 while的循环体执行多少次?函数的返回值是多少? (2)简述函数algo(L,n)的功能 int algo(int L int n) int i=0,j, s=l,t=n while(i!=(n+1)/2) while (i<j) while (i<j&&LI>=x)j LO=LOI whle(i≤j&&L<=x)i++ LO=LO f(x<(n+1)/2)s=i+1; if(i=0)return O else return L可l;int FindCycle (ALGraph * G, int i) { //若回路存在,则返回 1, 否则返回 0 int j; for (j=0; j<G->n; j++) cycle_path[j]=-1; return DFSPath (G, i, i ); } int DFSPath (ALGraph *G, int j, int i ) { EdgeNode * p; Int cycled=0; for (p=G->adjlist[j].firstedge; p &&! cycled; p=p->next) { cycle_path[j]=p->adjvex; if ( (1) )cycled=1; //已找到回路 else if (cycle_path[p->adjvex]==-1) cycled= (2) ; } return (3) ; } 33.阅读下列函数 algo,并回答问题。 (1)假设整型数组 A[1..8]中的元素依次为(3,8,9,1,7,4,2,6)。执行函数调用 algo(A,8)时, 外层 while 的循环体执行多少次?函数的返回值是多少? (2)简述函数 algo(L,n)的功能。 int algo (int L[ ], int n) { int i=0, j, s=1, t=n; while (i! =(n+1)/2) { int x =L[s]; i=s; j=t; while (i<j) { while (i<j &&L[j]>=x)j--; L[i]=L[j]; while (i<j &&L[i]<=x)i++; L[j]=L[i]; } L[i]=x; if (x<(n+1)/2) s=i+1; else t =i-1; } if (i ==0) return 0; else return L[i]; } (1) (2)
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有