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; } } }
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); } } }