|  
             indegree(V) = at any one time in algorithm, is the number 
              of edges comming IN to the vertex V 
            
               
                  | 
                 
                   Indegree of: 
                  CS1020 = 0 
                  CS1160 = 1 
                  CS2360 = 1 
                  CS2430 = 1 
                  CS3240 = 2 
                 | 
               
             
            
               
                |  
                   After removing CS1020: 
                  CS1160 = 0 
                  CS2360 = 1 
                  CS2430 = 1 
                  CS3240 = 2 
                 | 
               
               
                |  
                   After removing CS1160: 
                  CS2360 =0 
                  CS2430 = 0 
                  CS3240 = 2 
                 | 
               
               
                |  
                   After removing CS2360: 
                  CS2430 = 0 
                  CS3240 = 1 
                 | 
               
               
                |  
                   After removing CS2430: 
                  CS3240 = 0 
                 | 
               
             
              
            Pseudocode from Weiss Book 
            void Graph::topsort() 
              { 
                      Queue<Vertex> 
              q; 
                      int counter =0; 
               
                      q.makeEmpty(); 
               
                      for each Vertex 
              v in G  
                         if( 
              v.indegree == 0) 
                             q.enqueu(v); 
               
                     while(!q.isEmpty() ) 
                     { 
                         Vertex 
              v = q.dequeue(); 
                         v.topNum 
              = ++counter; 
               
                         for 
              each Vertex w adjacent to v 
                             if( 
              --w.indegree == 0) 
                                 q.enqueue(w); 
                     } 
                   if(counter != num_vertices) 
               
                        throw 
              CycleFoundException(); 
               
              }   
           |