/// <summary>
        /// return a reverse version of digraph
        /// </summary>
        /// <returns></returns>
        public Digraph Reverse()
        {
            Digraph R = new Digraph(v);

            for (int i = 0; i < v; i++)
            {
                foreach (int w in Adj(i))
                {
                    R.AddEdge(w, i);
                }
            }
            return(R);
        }