/// <summary> Initializes the internal traversal object structure. Sets up the /// internal queue with the directed graph vertices and creates the control /// structure for the in-degrees. /// /// </summary> /// <param name="dg">the directed graph to be iterated. /// </param> /// <param name="queue">initializer for m_queue /// </param> /// <param name="inDegreeMap">initializer for m_inDegreeMap /// /// </param> /// <returns> start vertex /// </returns> //UPGRADE_TODO: Class 'java.util.LinkedList' was converted to 'System.Collections.ArrayList' which has a different behavior. "ms-help://MS.VSCC.v80/dv_commoner/local/redirect.htm?index='!DefaultContextWindowIndex'&keyword='jlca1073_javautilLinkedList'" private static System.Object initialize(DirectedGraph dg, System.Collections.ArrayList queue, System.Collections.IDictionary inDegreeMap) { //UPGRADE_TODO: Method 'java.util.Iterator.hasNext' was converted to 'System.Collections.IEnumerator.MoveNext' which has a different behavior. "ms-help://MS.VSCC.v80/dv_commoner/local/redirect.htm?index='!DefaultContextWindowIndex'&keyword='jlca1073_javautilIteratorhasNext'" for (System.Collections.IEnumerator i = dg.vertexSet().GetEnumerator(); i.MoveNext();) { //UPGRADE_TODO: Method 'java.util.Iterator.next' was converted to 'System.Collections.IEnumerator.Current' which has a different behavior. "ms-help://MS.VSCC.v80/dv_commoner/local/redirect.htm?index='!DefaultContextWindowIndex'&keyword='jlca1073_javautilIteratornext'" System.Object vertex = i.Current; int inDegree = dg.inDegreeOf(vertex); inDegreeMap[vertex] = new ModifiableInteger(inDegree); if (inDegree == 0) { queue.Add(vertex); } } if ((queue.Count == 0)) { return(null); } else { return(queue[0]); } }
/// <summary> Decrements the in-degree of a vertex. /// /// </summary> /// <param name="vertex">the vertex whose in-degree will be decremented. /// </param> private void decrementInDegree(System.Object vertex) { ModifiableInteger inDegree = (ModifiableInteger)m_inDegreeMap[vertex]; if (inDegree.value_Renamed > 0) { inDegree.value_Renamed--; if (inDegree.value_Renamed == 0) { m_queue.Insert(m_queue.Count, vertex); } } }
/// <summary> Initializes the internal traversal object structure. Sets up the /// internal queue with the directed graph vertices and creates the control /// structure for the in-degrees. /// /// </summary> /// <param name="dg">the directed graph to be iterated. /// </param> /// <param name="queue">initializer for m_queue /// </param> /// <param name="inDegreeMap">initializer for m_inDegreeMap /// /// </param> /// <returns> start vertex /// </returns> //UPGRADE_TODO: Class 'java.util.LinkedList' was converted to 'System.Collections.ArrayList' which has a different behavior. "ms-help://MS.VSCC.v80/dv_commoner/local/redirect.htm?index='!DefaultContextWindowIndex'&keyword='jlca1073_javautilLinkedList'" private static System.Object initialize(DirectedGraph dg, System.Collections.ArrayList queue, System.Collections.IDictionary inDegreeMap) { //UPGRADE_TODO: Method 'java.util.Iterator.hasNext' was converted to 'System.Collections.IEnumerator.MoveNext' which has a different behavior. "ms-help://MS.VSCC.v80/dv_commoner/local/redirect.htm?index='!DefaultContextWindowIndex'&keyword='jlca1073_javautilIteratorhasNext'" for (System.Collections.IEnumerator i = dg.vertexSet().GetEnumerator(); i.MoveNext(); ) { //UPGRADE_TODO: Method 'java.util.Iterator.next' was converted to 'System.Collections.IEnumerator.Current' which has a different behavior. "ms-help://MS.VSCC.v80/dv_commoner/local/redirect.htm?index='!DefaultContextWindowIndex'&keyword='jlca1073_javautilIteratornext'" System.Object vertex = i.Current; int inDegree = dg.inDegreeOf(vertex); inDegreeMap[vertex] = new ModifiableInteger(inDegree); if (inDegree == 0) { queue.Add(vertex); } } if ((queue.Count == 0)) { return null; } else { return queue[0]; } }