How to work with our project? - OrianHindi/Graphs GitHub Wiki

Hello user,

at this page we will explain you all the interfaces, classes and functions.

if you want to work with our project, first- you have to know it.

The graph 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 ? "

Tag- boolean factor to know if we was at that node.

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.

TSP- 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.

We make some auxiliary functions to make it better and readable, like STPRec, transPose and DFSUtil.

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.