/* ECP: FILEname=fig10_32.c */ /* 1*/ void /* 2*/ EvaluateShort( int StartNode, Vertex Graph[ ] ) /* 3*/ { /* 4*/ int i, V, W; /* 5*/ Queue Q = QuMakeEmpty( NULL ); /* 6*/ for( i = 0; Graph[ i ].NodeName != NULL; i++ ) /* 7*/ { /* 8*/ Graph[ i ].Distance = Infinity; /* 9*/ Graph[ i ].PreviousNode = -1; /*10*/ } /*11*/ Graph[ StartNode ].Distance = 0; /*12*/ Enqueue( StartNode, Q ); /*13*/ while( !QuIsEmpty( Q ) ) /*14*/ { /*15*/ Dequeue( &V, Q ); /*16*/ for( i = 0; i < Graph[ V ].Adj.CurrentSize; i++ ) /*17*/ { /*18*/ W = Graph[ V ].Adj.Array[ i ]; /*19*/ if( Graph[ W ].Distance == Infinity ) /*20*/ { /*21*/ Graph[ W ].Distance = Graph[ V ].Distance + 1; /*22*/ Graph[ W ].PreviousNode = V; /*23*/ Enqueue( W, Q ); /*24*/ } /*25*/ } /*26*/ } /*27*/ QuRecycle( Q ); /*28*/ }