Breadth First Search void DReachable(int *A, int *B, int *W, int *LOC, int *DEG, int *A2, int *B2, int *W2, int *LOC2, int *DEG2) { int K,L,N,Nnodes,CNT, *P,*Q,*PP,*QQ, BUF1[MM],BUF2[MM],Nstate[MM]; Nnodes=B[0]; /********* Part 1: nodes reachable from entry node 1 ***********/ for (N=0; N<=Nnodes; N++) Nstate[N]=0; BUF1[0]=1; BUF1[1]=0; PP=BUF2; QQ=BUF1; MAINLP: P=QQ; Q=PP; PP=P; QQ=Q; /* switch pointers to buffers */ K=0; if (!*P) { /* no more unlabeled nodes available */ puts("\nThe following nodes are reachable from node 1:"); for (N=1; N<=Nnodes; N++) if (Nstate[N]) {printf("%d ",N); K++;} puts(""); if (K