Win a copy of The Way of the Web Tester: A Beginner's Guide to Automating Tests this week in the Testing forum!

# Need help figuring out what data structure to use for this project

Chewy Bucky
Greenhorn
Posts: 1
/** Adds a node to this graph.
@param node the node to add
@throws IllegalArgumentException if node already exists in the graph
@throws NullPointerException if node is null*/

}

/** Adds an edge that joins two nodes.
@param fromNode the starting node for this edge
@param toNode the ending node for this edge
@param edge the edge to add
@throws IllegalArgumentException if edge already exists in the graph,
or if startNode or endNode do not exist.
@throws NullPointerException if edge is null
*/
void addEdge(Object fromNode, Object toNode, Object edge){

}

/** Gets the start node of a given edge.
@param edge an edge of this graph
@return the start node of this edge, or null if this edge does not
exist in the graph.
*/
Object getStartNode(Object edge){

}

/** Gets the start node of a given edge.
@param edge an edge of this graph
@return the end node of this edge, or null if this edge does not
exist in the graph.
*/
Object getEndNode(Object edge){

}

/** Gets all nodes in this graph.
@return an immutable collection of all nodes in this graph
*/
Collection getNodes(){

}

/** Gets all edges that start or end with the given node.
@param node a node of this graph
@return an immutable collection of all edges that start or end
with node. The collection should be empty if node is a node of this
graph
*/
Collection getEdges(Object node){

}

}

Stumped on figuring out what data structure to use that's simpliest to implement.
[ October 18, 2005: Message edited by: Chewy Bucky ]

Barry Gaunt
Ranch Hand
Posts: 7729
Here's some collections from Sun's Tutorial. Just select those that seem useful to you.

John Mikhail
Greenhorn
Posts: 20
Not to sound cynical, but does this seem like someone asking to have their homework done for them??

Barry Gaunt
Ranch Hand
Posts: 7729
Originally posted by John Mikhail:
Not to sound cynical, but does this seem like someone asking to have their homework done for them??

Of course it does. That's why we give hints not the solution (at this stage).

Layne Lund
Ranch Hand
Posts: 3061
To help you decide, you should consider what kind of data you need to store. Also, how do you need to retrieve it? Feel free to post your thoughts here and we will be glad to help.

Also note that graphs are a well known data structure. There are at least two common ways of representing a graph. If you use Google, you should find some discussions about this.

Layne