First,you need to know - OrTiram/OOP_Ex2 GitHub Wiki
Hello user,
at this page we will explain you all the interfaces, classes and functions of the previous task, that constitutes a basis
to our project.
if you want to work with our project, first- you have to know it.
The basis is constructed from five packages:
algorithms, data structur, GUI, test and utils.
let us show you the three main packages:
DATA STRUCTURE:
graph- this interface represents a graph with few functions.
getters and setters, add node, connect, remove node and remove edge.
DGraph- this class implements graph interface, and realize all the functions.
in addition, DGraph implements Serializable.
edge_data- this interface represents edge in the graph.
edge is a line between two points.
edge_data includes getters and setters of all the properties of the edge.
the properties:
Src- the point from which the edge get out
Dest- the point from which the edge get in
Weight- the "Weight" of the edge, is the "cost" to over on the edge.
Tag- boolean factor to know if we was at that edge.
Edge- this class implements edge_data interface, and realize all the functions.
the class include constructors.
node_data- this interface represents node in the graph. (point)
node is a point in a graph. the nodes connected with edges.
node_data includes getters and setters of all the properties of the node.
the properties:
Key- the number of the point. like ID.
Location- the location at (x,y,z) 3D.
Weight- " how much i pay to get this point ? "
Node- this class implements node_data interface, and realize all the functions.
the class include constructors.
ALGORITHMS:
graph_algorithms- this interface represents the algorithms are work on the graphs.
with those algorithms we can to provide information about the graph.
the properties of the interface:
init- initialize graph.
you can init graph from file.
you can save graph to file.
copy- deep copy of the graph.
isConnected- we check if the graph is strong connected.
returns true if and only if (iff) there is a valid path from EVREY node to each other node.
shortestPathDist- ****that function returns the length of the shortest path between src and dest.
shortestPath- returns the the shortest path between src to dest - as an ordered List of nodes.
Dijkstra- computes a relatively short path which visit each node in the targets List.
Graph_Algo- this class implements graph_algorithm and realize all the functions.
GUI:
Graph_GUI- this class represents the GUI of the project.
here we "make it real". and you can see the graph on your eyes.
the class allowed to display a graph, save it, run algorithms on it, and display the results.
we did functions like: print graph, add edge, add node and more.
let us show you a Graph GUI example:
After that all, you have to read about the game. and than- let's play and have fun!!