Ejemplo n.º 1
0
        private void ReadGraphData()
        {
            foreach (var line in _dataLoader.LoadData())
            {
                var fileData = line.Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);

                switch (fileData[0])
                {
                case "p":
                    var numberOfVertices = int.Parse(fileData[2]);
                    for (var i = 0; i < numberOfVertices; i++)
                    {
                        VerticesWeights.Add(new Vertex(i));
                    }

                    EdgesWeights = new int[NumberOfVertices, NumberOfVertices];

                    NumberOfEdges = int.Parse(fileData[3]);
                    break;

                case "e":
                    var vertexID          = int.Parse(fileData[1]) - 1;
                    var connectedVertexID = int.Parse(fileData[2]) - 1;

                    EdgesWeights[vertexID, connectedVertexID] = 1;
                    EdgesWeights[connectedVertexID, vertexID] = 1;

                    var vertex = VerticesWeights.Single(v => v.Index == vertexID);
                    if (!vertex.ConnectedEdges.Contains(connectedVertexID))
                    {
                        vertex.ConnectedEdges.Add(connectedVertexID);
                    }

                    var connectedVertex = VerticesWeights.Single(v => v.Index == connectedVertexID);
                    if (!connectedVertex.ConnectedEdges.Contains(vertexID))
                    {
                        connectedVertex.ConnectedEdges.Add(vertexID);
                    }
                    break;
                }
            }
        }
Ejemplo n.º 2
0
        public void ReadVerticesWeights(Stream straem)
        {
            using (var reader = new StreamReader(straem))
            {
                // Skip first line.
                var line        = reader.ReadLine();
                var vertexIndex = 0;
                while (line != null)
                {
                    line = reader.ReadLine();

                    // TODO: Check what to do where. -> exceptions?
                    if (line == null)
                    {
                        continue;
                    }

                    var vertex = new Vertex(vertexIndex, int.Parse(line));
                    vertexIndex++;
                    VerticesWeights.Add(vertex);
                }
            }
        }