# 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!!