Post by Chainy on Mar 19, 2011 14:37:28 GMT 9.5
package pt;
import java.io.*;
import pt.graph.*;
import java.util.*;
/**
* A class to implement assignment 2.
*/
class Solution2
{
// the constructor is private - you must never create one of these objects.
private Solution2()
{}
static Graph parseGraph(String filename)
{
Graph created = Graphs.newGraph();
try
{
Reader br = new BufferedReader(new FileReader(filename));
StreamTokenizer st = new StreamTokenizer(br);
boolean done = false;
while (st.ttype != StreamTokenizer.TT_EOF && done == false)
{
st.nextToken();
if (st.ttype == StreamTokenizer.TT_NUMBER)
{
String check1 = st.sval;
if (check1.equals("directed"))
{
while (st.ttype != StreamTokenizer.TT_EOF && done == false)
{
st.nextToken();
if (st.ttype == StreamTokenizer.TT_NUMBER)
{
if (st.nval == 0)
return created;
else
{
double numberOfNodes = st.nval;
Node[] listOfNodes = new Node[((int)numberOfNodes)];
for (int i = 0; i < numberOfNodes; i++)
{
while (st.nextToken() != StreamTokenizer.TT_NUMBER && st.ttype != StreamTokenizer.TT_EOF)
{ }
double nodeXPOS = st.nval;
while (st.nextToken() != StreamTokenizer.TT_NUMBER && st.ttype != StreamTokenizer.TT_EOF)
{ }
double nodeYPOS = st.nval;
while (st.nextToken() != StreamTokenizer.TT_WORD && st.ttype != StreamTokenizer.TT_EOF)
{ }
String nodeNAME = st.sval;
Node tempName = Graphs.newNode(created, nodeXPOS, nodeYPOS, nodeNAME);
listOfNodes = ((Node)tempName);
}
while (st.nextToken() != StreamTokenizer.TT_NUMBER && st.ttype != StreamTokenizer.TT_EOF)
{ }
double numberOfArcs = st.nval;
for (int u = 0; u < numberOfArcs; u++)
{
while (st.nextToken() != StreamTokenizer.TT_NUMBER && st.ttype != StreamTokenizer.TT_EOF)
{ }
double arcSOURCE = st.nval;
while (st.nextToken() != StreamTokenizer.TT_NUMBER && st.ttype != StreamTokenizer.TT_EOF)
{ }
double arcDEST = st.nval;
while (st.nextToken() != StreamTokenizer.TT_NUMBER && st.ttype != StreamTokenizer.TT_EOF)
{ }
double arcDIST = st.nval;
while (st.nextToken() != StreamTokenizer.TT_WORD && st.ttype != StreamTokenizer.TT_EOF)
{ }
String arcCOLOUR = st.sval;
while (st.nextToken() != StreamTokenizer.TT_WORD && st.ttype != StreamTokenizer.TT_EOF)
{ }
String arcNAME = st.sval;
Arc tempNamed = Graphs.newArc(listOfNodes[((int)arcSOURCE)-1], listOfNodes[((int)arcDEST)-1], arcCOLOUR, arcNAME, ((int)arcDIST));
}
}
}
}
}
else if (check1.equals("undirected"))
{
while (st.ttype != StreamTokenizer.TT_EOF && done == false)
{
st.nextToken();
if (st.ttype == StreamTokenizer.TT_NUMBER)
{
if (st.nval == 0)
return created;
else
{
double numberOfNodes = st.nval;
Node[] listOfNodes = new Node[((int)numberOfNodes)];
for (int i = 0; i < numberOfNodes; i++)
{
while (st.nextToken() != StreamTokenizer.TT_NUMBER && st.ttype != StreamTokenizer.TT_EOF)
{ }
double nodeXPOS = st.nval;
while (st.nextToken() != StreamTokenizer.TT_NUMBER && st.ttype != StreamTokenizer.TT_EOF)
{ }
double nodeYPOS = st.nval;
while (st.nextToken() != StreamTokenizer.TT_WORD && st.ttype != StreamTokenizer.TT_EOF)
{ }
String nodeNAME = st.sval;
Node tempName = Graphs.newNode(((Graph)created), nodeXPOS, nodeYPOS, nodeNAME);
listOfNodes = ((Node)tempName);
}
while (st.nextToken() != StreamTokenizer.TT_NUMBER && st.ttype != StreamTokenizer.TT_EOF)
{ }
double numberOfArcs = st.nval;
for (int u = 0; u < numberOfArcs; u++)
{
while (st.nextToken() != StreamTokenizer.TT_NUMBER && st.ttype != StreamTokenizer.TT_EOF)
{ }
double arcSOURCE = st.nval;
while (st.nextToken() != StreamTokenizer.TT_NUMBER && st.ttype != StreamTokenizer.TT_EOF)
{ }
double arcDEST = st.nval;
while (st.nextToken() != StreamTokenizer.TT_NUMBER && st.ttype != StreamTokenizer.TT_EOF)
{ }
double arcDIST = st.nval;
while (st.nextToken() != StreamTokenizer.TT_WORD && st.ttype != StreamTokenizer.TT_EOF)
{ }
String arcCOLOUR = st.sval;
while (st.nextToken() != StreamTokenizer.TT_WORD && st.ttype != StreamTokenizer.TT_EOF)
{ }
String arcNAME = st.sval;
Edge tempNamed = Graphs.newEdge(listOfNodes[((int)arcSOURCE)-1], listOfNodes[((int)arcDEST)-1], arcCOLOUR, arcNAME, ((int)arcDIST));
}
}
}
}
}
}
}
return created;
}
catch (IOException ioe, InvalidGraphException ige, InvalidNodeException ine, InvalidArcException iae, InvalidEdgeException iee, FileNotFoundException fnfe)
{
return null;
}
return created; //to appease compiler, not needed since the return is in both try and catch clauses
}
}
import java.io.*;
import pt.graph.*;
import java.util.*;
/**
* A class to implement assignment 2.
*/
class Solution2
{
// the constructor is private - you must never create one of these objects.
private Solution2()
{}
static Graph parseGraph(String filename)
{
Graph created = Graphs.newGraph();
try
{
Reader br = new BufferedReader(new FileReader(filename));
StreamTokenizer st = new StreamTokenizer(br);
boolean done = false;
while (st.ttype != StreamTokenizer.TT_EOF && done == false)
{
st.nextToken();
if (st.ttype == StreamTokenizer.TT_NUMBER)
{
String check1 = st.sval;
if (check1.equals("directed"))
{
while (st.ttype != StreamTokenizer.TT_EOF && done == false)
{
st.nextToken();
if (st.ttype == StreamTokenizer.TT_NUMBER)
{
if (st.nval == 0)
return created;
else
{
double numberOfNodes = st.nval;
Node[] listOfNodes = new Node[((int)numberOfNodes)];
for (int i = 0; i < numberOfNodes; i++)
{
while (st.nextToken() != StreamTokenizer.TT_NUMBER && st.ttype != StreamTokenizer.TT_EOF)
{ }
double nodeXPOS = st.nval;
while (st.nextToken() != StreamTokenizer.TT_NUMBER && st.ttype != StreamTokenizer.TT_EOF)
{ }
double nodeYPOS = st.nval;
while (st.nextToken() != StreamTokenizer.TT_WORD && st.ttype != StreamTokenizer.TT_EOF)
{ }
String nodeNAME = st.sval;
Node tempName = Graphs.newNode(created, nodeXPOS, nodeYPOS, nodeNAME);
listOfNodes = ((Node)tempName);
}
while (st.nextToken() != StreamTokenizer.TT_NUMBER && st.ttype != StreamTokenizer.TT_EOF)
{ }
double numberOfArcs = st.nval;
for (int u = 0; u < numberOfArcs; u++)
{
while (st.nextToken() != StreamTokenizer.TT_NUMBER && st.ttype != StreamTokenizer.TT_EOF)
{ }
double arcSOURCE = st.nval;
while (st.nextToken() != StreamTokenizer.TT_NUMBER && st.ttype != StreamTokenizer.TT_EOF)
{ }
double arcDEST = st.nval;
while (st.nextToken() != StreamTokenizer.TT_NUMBER && st.ttype != StreamTokenizer.TT_EOF)
{ }
double arcDIST = st.nval;
while (st.nextToken() != StreamTokenizer.TT_WORD && st.ttype != StreamTokenizer.TT_EOF)
{ }
String arcCOLOUR = st.sval;
while (st.nextToken() != StreamTokenizer.TT_WORD && st.ttype != StreamTokenizer.TT_EOF)
{ }
String arcNAME = st.sval;
Arc tempNamed = Graphs.newArc(listOfNodes[((int)arcSOURCE)-1], listOfNodes[((int)arcDEST)-1], arcCOLOUR, arcNAME, ((int)arcDIST));
}
}
}
}
}
else if (check1.equals("undirected"))
{
while (st.ttype != StreamTokenizer.TT_EOF && done == false)
{
st.nextToken();
if (st.ttype == StreamTokenizer.TT_NUMBER)
{
if (st.nval == 0)
return created;
else
{
double numberOfNodes = st.nval;
Node[] listOfNodes = new Node[((int)numberOfNodes)];
for (int i = 0; i < numberOfNodes; i++)
{
while (st.nextToken() != StreamTokenizer.TT_NUMBER && st.ttype != StreamTokenizer.TT_EOF)
{ }
double nodeXPOS = st.nval;
while (st.nextToken() != StreamTokenizer.TT_NUMBER && st.ttype != StreamTokenizer.TT_EOF)
{ }
double nodeYPOS = st.nval;
while (st.nextToken() != StreamTokenizer.TT_WORD && st.ttype != StreamTokenizer.TT_EOF)
{ }
String nodeNAME = st.sval;
Node tempName = Graphs.newNode(((Graph)created), nodeXPOS, nodeYPOS, nodeNAME);
listOfNodes = ((Node)tempName);
}
while (st.nextToken() != StreamTokenizer.TT_NUMBER && st.ttype != StreamTokenizer.TT_EOF)
{ }
double numberOfArcs = st.nval;
for (int u = 0; u < numberOfArcs; u++)
{
while (st.nextToken() != StreamTokenizer.TT_NUMBER && st.ttype != StreamTokenizer.TT_EOF)
{ }
double arcSOURCE = st.nval;
while (st.nextToken() != StreamTokenizer.TT_NUMBER && st.ttype != StreamTokenizer.TT_EOF)
{ }
double arcDEST = st.nval;
while (st.nextToken() != StreamTokenizer.TT_NUMBER && st.ttype != StreamTokenizer.TT_EOF)
{ }
double arcDIST = st.nval;
while (st.nextToken() != StreamTokenizer.TT_WORD && st.ttype != StreamTokenizer.TT_EOF)
{ }
String arcCOLOUR = st.sval;
while (st.nextToken() != StreamTokenizer.TT_WORD && st.ttype != StreamTokenizer.TT_EOF)
{ }
String arcNAME = st.sval;
Edge tempNamed = Graphs.newEdge(listOfNodes[((int)arcSOURCE)-1], listOfNodes[((int)arcDEST)-1], arcCOLOUR, arcNAME, ((int)arcDIST));
}
}
}
}
}
}
}
return created;
}
catch (IOException ioe, InvalidGraphException ige, InvalidNodeException ine, InvalidArcException iae, InvalidEdgeException iee, FileNotFoundException fnfe)
{
return null;
}
return created; //to appease compiler, not needed since the return is in both try and catch clauses
}
}