Example #1
0
        /// <summary>
        /// Indicate that the edge connecting the vertices u and v forms a ring.
        /// </summary>
        /// <param name="u">a vertex</param>
        /// <param name="v">a vertex connected to u</param>
        /// <param name="b">bond type connecting u to v</param>
        private void CyclicEdge(int u, int v, Bond b)
        {
            RingClosure r = new RingClosure(u, v, b);

            AddRing(r.u, r);
            AddRing(r.v, r);
        }
Example #2
0
 /// <summary>
 /// Add a ring closure to the the vertex 'u'.
 /// </summary>
 /// <param name="u"> a vertex</param>
 /// <param name="rc">ring closure</param>
 private void AddRing(int u, RingClosure rc)
 {
     if (!rings.TryGetValue(u, out IList <RingClosure> closures))
     {
         if (closures == null)
         {
             closures = new List <RingClosure>(2);
             rings.Add(u, closures);
         }
     }
     closures.Add(rc);
 }