コード例 #1
0
        public static void KargerMinCut()
        {
            string       fileName = "kargerMinCut.txt";
            StreamReader reader   = null;

            int[] testArray = null, testArrayCopy = null;


            try
            {
                if (File.Exists(fileName))
                {
                    var fileStream = new FileStream(fileName, FileMode.Open, FileAccess.Read);
                    reader = new StreamReader(fileStream);

                    List <Vertex> vertices = new List <Vertex>();
                    while (!reader.EndOfStream)
                    {
                        string[] lineElems = reader.ReadLine().Split(new char[] { '\t' }, StringSplitOptions.RemoveEmptyEntries);

                        List <int> adjacentVert = new List <int>();
                        for (int i = 1; i < lineElems.Length; i++)
                        {
                            adjacentVert.Add(Convert.ToInt32(lineElems[i]));
                        }
                        vertices.Add(new Vertex(Convert.ToInt32(lineElems[0]), Convert.ToInt32(lineElems[0]), adjacentVert));
                    }

                    UGraph            graph         = new UGraph(vertices);
                    LinkedList <Edge> crossingEdges = graph.GetCrossingEdgesForMinCut();
                    int minCutCount = crossingEdges.Count;
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                if (reader != null)
                {
                    reader.Dispose();
                }
            }
        }
コード例 #2
0
ファイル: Graph.cs プロジェクト: apriyadarshi/algostan
 public ContractibleGraph(UGraph pOriginalGraph)
 {
     OriginalGraph     = pOriginalGraph;
     ContractibleEdges = GetContractibleEdgesForGraph();
 }