diff --git a/README.md b/README.md
deleted file mode 100644
index 7947f9b..0000000
--- a/README.md
+++ /dev/null
@@ -1,5 +0,0 @@
-# graphJava
-
-Projet Graph
-Réalisé par Bastien Ricoeur, le 28/03/16.
-Polytech Montpellier IG3
diff --git a/graph.jar b/graph.jar
deleted file mode 100644
index 3ceb599..0000000
Binary files a/graph.jar and /dev/null differ
diff --git a/graph/.classpath b/graph/.classpath
new file mode 100644
index 0000000..aecd904
--- /dev/null
+++ b/graph/.classpath
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
diff --git a/graph/.project b/graph/.project
new file mode 100644
index 0000000..9653737
--- /dev/null
+++ b/graph/.project
@@ -0,0 +1,17 @@
+
+
+ graph
+
+
+
+
+
+ org.eclipse.jdt.core.javabuilder
+
+
+
+
+
+ org.eclipse.jdt.core.javanature
+
+
diff --git a/graph/.settings/org.eclipse.jdt.core.prefs b/graph/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..3a21537
--- /dev/null
+++ b/graph/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,11 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
+org.eclipse.jdt.core.compiler.compliance=1.8
+org.eclipse.jdt.core.compiler.debug.lineNumber=generate
+org.eclipse.jdt.core.compiler.debug.localVariable=generate
+org.eclipse.jdt.core.compiler.debug.sourceFile=generate
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.8
diff --git a/graph/META-INF/MANIFEST.MF b/graph/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..09c71c8
--- /dev/null
+++ b/graph/META-INF/MANIFEST.MF
@@ -0,0 +1,4 @@
+Manifest-Version: 1.0
+Class-Path: . ../lib/graph.jar
+Main-Class: graph.TestGraphImpl
+
diff --git a/graph/bin/graph/AdjacencyMatrix.class b/graph/bin/graph/AdjacencyMatrix.class
new file mode 100644
index 0000000..b5bddc1
Binary files /dev/null and b/graph/bin/graph/AdjacencyMatrix.class differ
diff --git a/graph/bin/graph/TestGraphImpl.class b/graph/bin/graph/TestGraphImpl.class
new file mode 100644
index 0000000..a71b2d1
Binary files /dev/null and b/graph/bin/graph/TestGraphImpl.class differ
diff --git a/graph/bin/unicorn.jar b/graph/bin/unicorn.jar
new file mode 100644
index 0000000..97cec41
Binary files /dev/null and b/graph/bin/unicorn.jar differ
diff --git a/graph/bin/unicorn_backup.jar b/graph/bin/unicorn_backup.jar
new file mode 100644
index 0000000..3607c2b
Binary files /dev/null and b/graph/bin/unicorn_backup.jar differ
diff --git a/graph/doc/allclasses-frame.html b/graph/doc/allclasses-frame.html
new file mode 100644
index 0000000..9400cb6
--- /dev/null
+++ b/graph/doc/allclasses-frame.html
@@ -0,0 +1,20 @@
+
+
+
+
+
+All Classes
+
+
+
+
+
+All Classes
+
+
+
diff --git a/graph/doc/allclasses-noframe.html b/graph/doc/allclasses-noframe.html
new file mode 100644
index 0000000..a67ecb1
--- /dev/null
+++ b/graph/doc/allclasses-noframe.html
@@ -0,0 +1,20 @@
+
+
+
+
+
+All Classes
+
+
+
+
+
+All Classes
+
+
+
diff --git a/graph/doc/constant-values.html b/graph/doc/constant-values.html
new file mode 100644
index 0000000..d9f7000
--- /dev/null
+++ b/graph/doc/constant-values.html
@@ -0,0 +1,122 @@
+
+
+
+
+
+Constant Field Values
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/graph/doc/deprecated-list.html b/graph/doc/deprecated-list.html
new file mode 100644
index 0000000..fd2288e
--- /dev/null
+++ b/graph/doc/deprecated-list.html
@@ -0,0 +1,122 @@
+
+
+
+
+
+Deprecated List
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/graph/doc/graph/AdjacencyMatrix.html b/graph/doc/graph/AdjacencyMatrix.html
new file mode 100644
index 0000000..f2d7c87
--- /dev/null
+++ b/graph/doc/graph/AdjacencyMatrix.html
@@ -0,0 +1,533 @@
+
+
+
+
+
+AdjacencyMatrix
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+
+
+java.lang.Object
+
+
+
+
+
+
+
+
+
+
+
+
+
+Constructor Summary
+
+Constructors
+
+Constructor and Description
+
+
+AdjacencyMatrix ()
+constructor of the class
+
+
+
+AdjacencyMatrix (boolean isDirected)
+constructor of the class with the option to create a directed graph
+
+
+
+
+
+
+
+
+
+
+Method Summary
+
+All Methods Instance Methods Concrete Methods
+
+Modifier and Type
+Method and Description
+
+
+void
+addEdge (graph.Edge e)
+method to add an Edge to the graph, will add the edge's vertices if they're not present in the graph
+
+
+
+void
+addEdge (graph.Vertex v1,
+ graph.Vertex v2)
+method to add an Edge to the graph if the vertices are already part of the graph
+
+
+
+void
+addVertex (graph.Vertex v)
+method to add a Vertex to the graph
+
+
+
+int[][]
+getMatrix ()
+getter of the matrix
+
+
+
+graph.Vertex[]
+getVertices ()
+getter of vertices
+
+
+
+int
+nbEdge ()
+method that counts the number of edges in the graph
+
+
+
+int
+nbVertex ()
+method that counts the number of vertices in the graph
+
+
+
+graph.Vertex[]
+neighbours (graph.Vertex v)
+a method that returns the neighbours of a given vertex
+
+
+
+void
+printMatrix ()
+method to print the matrix of the graph in ASCII
+
+
+
+boolean
+searchEdge (graph.Vertex v1,
+ graph.Vertex v2)
+method that check if an edge is in the graph
+
+
+
+void
+setMatrix (int[][] matrix)
+setter of the matrix
+
+
+
+void
+setVertices (graph.Vertex[] vertices)
+setter of vertices
+
+
+
+
+
+
+
+Methods inherited from class java.lang.Object
+equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Constructor Detail
+
+
+
+
+
+AdjacencyMatrix
+public AdjacencyMatrix()
+constructor of the class
+
+
+
+
+
+
+
+
+
+
+
+
+
+Method Detail
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+addEdge
+public void addEdge(graph.Edge e)
+method to add an Edge to the graph, will add the edge's vertices if they're not present in the graph
+
+Parameters:
+e - Edge that will be added to the graph
+
+
+
+
+
+
+
+
+addEdge
+public void addEdge(graph.Vertex v1,
+ graph.Vertex v2)
+method to add an Edge to the graph if the vertices are already part of the graph
+
+Parameters:
+v1 - the first Vertex
+v2 - the second Vertex
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+searchEdge
+public boolean searchEdge(graph.Vertex v1,
+ graph.Vertex v2)
+method that check if an edge is in the graph
+
+Specified by:
+searchEdge in interface graph.Graph
+Returns:
+boolean : true if the Edge exists in the graph, else false
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/graph/doc/graph/TestGraphImpl.html b/graph/doc/graph/TestGraphImpl.html
new file mode 100644
index 0000000..b09d582
--- /dev/null
+++ b/graph/doc/graph/TestGraphImpl.html
@@ -0,0 +1,274 @@
+
+
+
+
+
+TestGraphImpl
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+
+
+java.lang.Object
+
+
+
+
+
+
+
+
+
+
+
+
+
+Constructor Summary
+
+Constructors
+
+Constructor and Description
+
+
+TestGraphImpl ()
+
+
+
+
+
+
+
+
+
+Method Summary
+
+
+
+
+
+Methods inherited from class java.lang.Object
+equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Constructor Detail
+
+
+
+
+
+TestGraphImpl
+public TestGraphImpl()
+
+
+
+
+
+
+
+
+
+Method Detail
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/graph/doc/graph/class-use/AdjacencyMatrix.html b/graph/doc/graph/class-use/AdjacencyMatrix.html
new file mode 100644
index 0000000..0563a93
--- /dev/null
+++ b/graph/doc/graph/class-use/AdjacencyMatrix.html
@@ -0,0 +1,122 @@
+
+
+
+
+
+Uses of Class graph.AdjacencyMatrix
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+No usage of graph.AdjacencyMatrix
+
+
+
+
+
+
diff --git a/graph/doc/graph/class-use/TestGraphImpl.html b/graph/doc/graph/class-use/TestGraphImpl.html
new file mode 100644
index 0000000..b69972b
--- /dev/null
+++ b/graph/doc/graph/class-use/TestGraphImpl.html
@@ -0,0 +1,122 @@
+
+
+
+
+
+Uses of Class graph.TestGraphImpl
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+No usage of graph.TestGraphImpl
+
+
+
+
+
+
diff --git a/graph/doc/graph/package-frame.html b/graph/doc/graph/package-frame.html
new file mode 100644
index 0000000..7b2233b
--- /dev/null
+++ b/graph/doc/graph/package-frame.html
@@ -0,0 +1,21 @@
+
+
+
+
+
+graph
+
+
+
+
+
+
+
+
+
diff --git a/graph/doc/graph/package-summary.html b/graph/doc/graph/package-summary.html
new file mode 100644
index 0000000..1670272
--- /dev/null
+++ b/graph/doc/graph/package-summary.html
@@ -0,0 +1,144 @@
+
+
+
+
+
+graph
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+Prev Package
+Next Package
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Prev Package
+Next Package
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/graph/doc/graph/package-tree.html b/graph/doc/graph/package-tree.html
new file mode 100644
index 0000000..6a12240
--- /dev/null
+++ b/graph/doc/graph/package-tree.html
@@ -0,0 +1,132 @@
+
+
+
+
+
+graph Class Hierarchy
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/graph/doc/graph/package-use.html b/graph/doc/graph/package-use.html
new file mode 100644
index 0000000..b8cf3b8
--- /dev/null
+++ b/graph/doc/graph/package-use.html
@@ -0,0 +1,122 @@
+
+
+
+
+
+Uses of Package graph
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+No usage of graph
+
+
+
+
+
+
diff --git a/graph/doc/help-doc.html b/graph/doc/help-doc.html
new file mode 100644
index 0000000..25200f5
--- /dev/null
+++ b/graph/doc/help-doc.html
@@ -0,0 +1,223 @@
+
+
+
+
+
+API Help
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+
+
+Package
+Each package has a page that contains a list of its classes and interfaces, with a summary for each. This page can contain six categories:
+
+Interfaces (italic)
+Classes
+Enums
+Exceptions
+Errors
+Annotation Types
+
+
+
+Class/Interface
+Each class, interface, nested class and nested interface has its own separate page. Each of these pages has three sections consisting of a class/interface description, summary tables, and detailed member descriptions:
+
+Class inheritance diagram
+Direct Subclasses
+All Known Subinterfaces
+All Known Implementing Classes
+Class/interface declaration
+Class/interface description
+
+
+Nested Class Summary
+Field Summary
+Constructor Summary
+Method Summary
+
+
+Field Detail
+Constructor Detail
+Method Detail
+
+Each summary entry contains the first sentence from the detailed description for that item. The summary entries are alphabetical, while the detailed descriptions are in the order they appear in the source code. This preserves the logical groupings established by the programmer.
+
+
+Annotation Type
+Each annotation type has its own separate page with the following sections:
+
+Annotation Type declaration
+Annotation Type description
+Required Element Summary
+Optional Element Summary
+Element Detail
+
+
+
+Enum
+Each enum has its own separate page with the following sections:
+
+Enum declaration
+Enum description
+Enum Constant Summary
+Enum Constant Detail
+
+
+
+Use
+Each documented package, class and interface has its own Use page. This page describes what packages, classes, methods, constructors and fields use any part of the given class or package. Given a class or interface A, its Use page includes subclasses of A, fields declared as A, methods that return A, and methods and constructors with parameters of type A. You can access this page by first going to the package, class or interface, then clicking on the "Use" link in the navigation bar.
+
+
+Tree (Class Hierarchy)
+There is a Class Hierarchy page for all packages, plus a hierarchy for each package. Each hierarchy page contains a list of classes and a list of interfaces. The classes are organized by inheritance structure starting with java.lang.Object. The interfaces do not inherit from java.lang.Object.
+
+When viewing the Overview page, clicking on "Tree" displays the hierarchy for all packages.
+When viewing a particular package, class or interface page, clicking "Tree" displays the hierarchy for only that package.
+
+
+
+Deprecated API
+The Deprecated API page lists all of the API that have been deprecated. A deprecated API is not recommended for use, generally due to improvements, and a replacement API is usually given. Deprecated APIs may be removed in future implementations.
+
+
+Index
+The Index contains an alphabetic list of all classes, interfaces, constructors, methods, and fields.
+
+
+Prev/Next
+These links take you to the next or previous class, interface, package, or related page.
+
+
+Frames/No Frames
+These links show and hide the HTML frames. All pages are available with or without frames.
+
+
+All Classes
+The All Classes link shows all classes and interfaces except non-static nested types.
+
+
+Serialized Form
+Each serializable or externalizable class has a description of its serialization fields and methods. This information is of interest to re-implementors, not to developers using the API. While there is no link in the navigation bar, you can get to this information by going to any serialized class and clicking "Serialized Form" in the "See also" section of the class description.
+
+
+Constant Field Values
+The Constant Field Values page lists the static final fields and their values.
+
+
+
This help file applies to API documentation generated using the standard doclet.
+
+
+
+
+
+
diff --git a/graph/doc/index-files/index-1.html b/graph/doc/index-files/index-1.html
new file mode 100644
index 0000000..3a9b124
--- /dev/null
+++ b/graph/doc/index-files/index-1.html
@@ -0,0 +1,147 @@
+
+
+
+
+
+A-Index
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+A G M N P S T
+
+
+
A
+
+addEdge(Edge) - Method in class graph.AdjacencyMatrix
+
+method to add an Edge to the graph, will add the edge's vertices if they're not present in the graph
+
+addEdge(Vertex, Vertex) - Method in class graph.AdjacencyMatrix
+
+method to add an Edge to the graph if the vertices are already part of the graph
+
+addVertex(Vertex) - Method in class graph.AdjacencyMatrix
+
+method to add a Vertex to the graph
+
+AdjacencyMatrix - Class in graph
+
+AdjacencyMatrix() - Constructor for class graph.AdjacencyMatrix
+
+constructor of the class
+
+AdjacencyMatrix(boolean) - Constructor for class graph.AdjacencyMatrix
+
+constructor of the class with the option to create a directed graph
+
+
+
A G M N P S T
+
+
+
+
+
+
diff --git a/graph/doc/index-files/index-2.html b/graph/doc/index-files/index-2.html
new file mode 100644
index 0000000..de300fc
--- /dev/null
+++ b/graph/doc/index-files/index-2.html
@@ -0,0 +1,135 @@
+
+
+
+
+
+G-Index
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+A G M N P S T
+
+
+
G
+
+getMatrix() - Method in class graph.AdjacencyMatrix
+
+getter of the matrix
+
+getVertices() - Method in class graph.AdjacencyMatrix
+
+getter of vertices
+
+graph - package graph
+
+
+
A G M N P S T
+
+
+
+
+
+
diff --git a/graph/doc/index-files/index-3.html b/graph/doc/index-files/index-3.html
new file mode 100644
index 0000000..9e4feea
--- /dev/null
+++ b/graph/doc/index-files/index-3.html
@@ -0,0 +1,127 @@
+
+
+
+
+
+M-Index
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+A G M N P S T
+
+
+
M
+
+main(String[]) - Static method in class graph.TestGraphImpl
+
+
+
A G M N P S T
+
+
+
+
+
+
diff --git a/graph/doc/index-files/index-4.html b/graph/doc/index-files/index-4.html
new file mode 100644
index 0000000..94d3c30
--- /dev/null
+++ b/graph/doc/index-files/index-4.html
@@ -0,0 +1,137 @@
+
+
+
+
+
+N-Index
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+A G M N P S T
+
+
+
N
+
+nbEdge() - Method in class graph.AdjacencyMatrix
+
+method that counts the number of edges in the graph
+
+nbVertex() - Method in class graph.AdjacencyMatrix
+
+method that counts the number of vertices in the graph
+
+neighbours(Vertex) - Method in class graph.AdjacencyMatrix
+
+a method that returns the neighbours of a given vertex
+
+
+
A G M N P S T
+
+
+
+
+
+
diff --git a/graph/doc/index-files/index-5.html b/graph/doc/index-files/index-5.html
new file mode 100644
index 0000000..74405e2
--- /dev/null
+++ b/graph/doc/index-files/index-5.html
@@ -0,0 +1,129 @@
+
+
+
+
+
+P-Index
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+A G M N P S T
+
+
+
P
+
+printMatrix() - Method in class graph.AdjacencyMatrix
+
+method to print the matrix of the graph in ASCII
+
+
+
A G M N P S T
+
+
+
+
+
+
diff --git a/graph/doc/index-files/index-6.html b/graph/doc/index-files/index-6.html
new file mode 100644
index 0000000..6a475cf
--- /dev/null
+++ b/graph/doc/index-files/index-6.html
@@ -0,0 +1,137 @@
+
+
+
+
+
+S-Index
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+A G M N P S T
+
+
+
S
+
+searchEdge(Vertex, Vertex) - Method in class graph.AdjacencyMatrix
+
+method that check if an edge is in the graph
+
+setMatrix(int[][]) - Method in class graph.AdjacencyMatrix
+
+setter of the matrix
+
+setVertices(Vertex[]) - Method in class graph.AdjacencyMatrix
+
+setter of vertices
+
+
+
A G M N P S T
+
+
+
+
+
+
diff --git a/graph/doc/index-files/index-7.html b/graph/doc/index-files/index-7.html
new file mode 100644
index 0000000..f580a71
--- /dev/null
+++ b/graph/doc/index-files/index-7.html
@@ -0,0 +1,129 @@
+
+
+
+
+
+T-Index
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+A G M N P S T
+
+
+
T
+
+TestGraphImpl - Class in graph
+
+TestGraphImpl() - Constructor for class graph.TestGraphImpl
+
+
+
A G M N P S T
+
+
+
+
+
+
diff --git a/graph/doc/index.html b/graph/doc/index.html
new file mode 100644
index 0000000..0601887
--- /dev/null
+++ b/graph/doc/index.html
@@ -0,0 +1,71 @@
+
+
+
+
+
+Generated Documentation (Untitled)
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+Frame Alert
+This document is designed to be viewed using the frames feature. If you see this message, you are using a non-frame-capable web client. Link to Non-frame version .
+
+
+
diff --git a/graph/doc/overview-tree.html b/graph/doc/overview-tree.html
new file mode 100644
index 0000000..98503f5
--- /dev/null
+++ b/graph/doc/overview-tree.html
@@ -0,0 +1,136 @@
+
+
+
+
+
+Class Hierarchy
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/graph/doc/package-list b/graph/doc/package-list
new file mode 100644
index 0000000..52fdfdd
--- /dev/null
+++ b/graph/doc/package-list
@@ -0,0 +1 @@
+graph
diff --git a/graph/doc/script.js b/graph/doc/script.js
new file mode 100644
index 0000000..b346356
--- /dev/null
+++ b/graph/doc/script.js
@@ -0,0 +1,30 @@
+function show(type)
+{
+ count = 0;
+ for (var key in methods) {
+ var row = document.getElementById(key);
+ if ((methods[key] & type) != 0) {
+ row.style.display = '';
+ row.className = (count++ % 2) ? rowColor : altColor;
+ }
+ else
+ row.style.display = 'none';
+ }
+ updateTabs(type);
+}
+
+function updateTabs(type)
+{
+ for (var value in tabs) {
+ var sNode = document.getElementById(tabs[value][0]);
+ var spanNode = sNode.firstChild;
+ if (value == type) {
+ sNode.className = activeTableTab;
+ spanNode.innerHTML = tabs[value][1];
+ }
+ else {
+ sNode.className = tableTab;
+ spanNode.innerHTML = "" + tabs[value][1] + " ";
+ }
+ }
+}
diff --git a/graph/doc/stylesheet.css b/graph/doc/stylesheet.css
new file mode 100644
index 0000000..98055b2
--- /dev/null
+++ b/graph/doc/stylesheet.css
@@ -0,0 +1,574 @@
+/* Javadoc style sheet */
+/*
+Overall document style
+*/
+
+@import url('resources/fonts/dejavu.css');
+
+body {
+ background-color:#ffffff;
+ color:#353833;
+ font-family:'DejaVu Sans', Arial, Helvetica, sans-serif;
+ font-size:14px;
+ margin:0;
+}
+a:link, a:visited {
+ text-decoration:none;
+ color:#4A6782;
+}
+a:hover, a:focus {
+ text-decoration:none;
+ color:#bb7a2a;
+}
+a:active {
+ text-decoration:none;
+ color:#4A6782;
+}
+a[name] {
+ color:#353833;
+}
+a[name]:hover {
+ text-decoration:none;
+ color:#353833;
+}
+pre {
+ font-family:'DejaVu Sans Mono', monospace;
+ font-size:14px;
+}
+h1 {
+ font-size:20px;
+}
+h2 {
+ font-size:18px;
+}
+h3 {
+ font-size:16px;
+ font-style:italic;
+}
+h4 {
+ font-size:13px;
+}
+h5 {
+ font-size:12px;
+}
+h6 {
+ font-size:11px;
+}
+ul {
+ list-style-type:disc;
+}
+code, tt {
+ font-family:'DejaVu Sans Mono', monospace;
+ font-size:14px;
+ padding-top:4px;
+ margin-top:8px;
+ line-height:1.4em;
+}
+dt code {
+ font-family:'DejaVu Sans Mono', monospace;
+ font-size:14px;
+ padding-top:4px;
+}
+table tr td dt code {
+ font-family:'DejaVu Sans Mono', monospace;
+ font-size:14px;
+ vertical-align:top;
+ padding-top:4px;
+}
+sup {
+ font-size:8px;
+}
+/*
+Document title and Copyright styles
+*/
+.clear {
+ clear:both;
+ height:0px;
+ overflow:hidden;
+}
+.aboutLanguage {
+ float:right;
+ padding:0px 21px;
+ font-size:11px;
+ z-index:200;
+ margin-top:-9px;
+}
+.legalCopy {
+ margin-left:.5em;
+}
+.bar a, .bar a:link, .bar a:visited, .bar a:active {
+ color:#FFFFFF;
+ text-decoration:none;
+}
+.bar a:hover, .bar a:focus {
+ color:#bb7a2a;
+}
+.tab {
+ background-color:#0066FF;
+ color:#ffffff;
+ padding:8px;
+ width:5em;
+ font-weight:bold;
+}
+/*
+Navigation bar styles
+*/
+.bar {
+ background-color:#4D7A97;
+ color:#FFFFFF;
+ padding:.8em .5em .4em .8em;
+ height:auto;/*height:1.8em;*/
+ font-size:11px;
+ margin:0;
+}
+.topNav {
+ background-color:#4D7A97;
+ color:#FFFFFF;
+ float:left;
+ padding:0;
+ width:100%;
+ clear:right;
+ height:2.8em;
+ padding-top:10px;
+ overflow:hidden;
+ font-size:12px;
+}
+.bottomNav {
+ margin-top:10px;
+ background-color:#4D7A97;
+ color:#FFFFFF;
+ float:left;
+ padding:0;
+ width:100%;
+ clear:right;
+ height:2.8em;
+ padding-top:10px;
+ overflow:hidden;
+ font-size:12px;
+}
+.subNav {
+ background-color:#dee3e9;
+ float:left;
+ width:100%;
+ overflow:hidden;
+ font-size:12px;
+}
+.subNav div {
+ clear:left;
+ float:left;
+ padding:0 0 5px 6px;
+ text-transform:uppercase;
+}
+ul.navList, ul.subNavList {
+ float:left;
+ margin:0 25px 0 0;
+ padding:0;
+}
+ul.navList li{
+ list-style:none;
+ float:left;
+ padding: 5px 6px;
+ text-transform:uppercase;
+}
+ul.subNavList li{
+ list-style:none;
+ float:left;
+}
+.topNav a:link, .topNav a:active, .topNav a:visited, .bottomNav a:link, .bottomNav a:active, .bottomNav a:visited {
+ color:#FFFFFF;
+ text-decoration:none;
+ text-transform:uppercase;
+}
+.topNav a:hover, .bottomNav a:hover {
+ text-decoration:none;
+ color:#bb7a2a;
+ text-transform:uppercase;
+}
+.navBarCell1Rev {
+ background-color:#F8981D;
+ color:#253441;
+ margin: auto 5px;
+}
+.skipNav {
+ position:absolute;
+ top:auto;
+ left:-9999px;
+ overflow:hidden;
+}
+/*
+Page header and footer styles
+*/
+.header, .footer {
+ clear:both;
+ margin:0 20px;
+ padding:5px 0 0 0;
+}
+.indexHeader {
+ margin:10px;
+ position:relative;
+}
+.indexHeader span{
+ margin-right:15px;
+}
+.indexHeader h1 {
+ font-size:13px;
+}
+.title {
+ color:#2c4557;
+ margin:10px 0;
+}
+.subTitle {
+ margin:5px 0 0 0;
+}
+.header ul {
+ margin:0 0 15px 0;
+ padding:0;
+}
+.footer ul {
+ margin:20px 0 5px 0;
+}
+.header ul li, .footer ul li {
+ list-style:none;
+ font-size:13px;
+}
+/*
+Heading styles
+*/
+div.details ul.blockList ul.blockList ul.blockList li.blockList h4, div.details ul.blockList ul.blockList ul.blockListLast li.blockList h4 {
+ background-color:#dee3e9;
+ border:1px solid #d0d9e0;
+ margin:0 0 6px -8px;
+ padding:7px 5px;
+}
+ul.blockList ul.blockList ul.blockList li.blockList h3 {
+ background-color:#dee3e9;
+ border:1px solid #d0d9e0;
+ margin:0 0 6px -8px;
+ padding:7px 5px;
+}
+ul.blockList ul.blockList li.blockList h3 {
+ padding:0;
+ margin:15px 0;
+}
+ul.blockList li.blockList h2 {
+ padding:0px 0 20px 0;
+}
+/*
+Page layout container styles
+*/
+.contentContainer, .sourceContainer, .classUseContainer, .serializedFormContainer, .constantValuesContainer {
+ clear:both;
+ padding:10px 20px;
+ position:relative;
+}
+.indexContainer {
+ margin:10px;
+ position:relative;
+ font-size:12px;
+}
+.indexContainer h2 {
+ font-size:13px;
+ padding:0 0 3px 0;
+}
+.indexContainer ul {
+ margin:0;
+ padding:0;
+}
+.indexContainer ul li {
+ list-style:none;
+ padding-top:2px;
+}
+.contentContainer .description dl dt, .contentContainer .details dl dt, .serializedFormContainer dl dt {
+ font-size:12px;
+ font-weight:bold;
+ margin:10px 0 0 0;
+ color:#4E4E4E;
+}
+.contentContainer .description dl dd, .contentContainer .details dl dd, .serializedFormContainer dl dd {
+ margin:5px 0 10px 0px;
+ font-size:14px;
+ font-family:'DejaVu Sans Mono',monospace;
+}
+.serializedFormContainer dl.nameValue dt {
+ margin-left:1px;
+ font-size:1.1em;
+ display:inline;
+ font-weight:bold;
+}
+.serializedFormContainer dl.nameValue dd {
+ margin:0 0 0 1px;
+ font-size:1.1em;
+ display:inline;
+}
+/*
+List styles
+*/
+ul.horizontal li {
+ display:inline;
+ font-size:0.9em;
+}
+ul.inheritance {
+ margin:0;
+ padding:0;
+}
+ul.inheritance li {
+ display:inline;
+ list-style:none;
+}
+ul.inheritance li ul.inheritance {
+ margin-left:15px;
+ padding-left:15px;
+ padding-top:1px;
+}
+ul.blockList, ul.blockListLast {
+ margin:10px 0 10px 0;
+ padding:0;
+}
+ul.blockList li.blockList, ul.blockListLast li.blockList {
+ list-style:none;
+ margin-bottom:15px;
+ line-height:1.4;
+}
+ul.blockList ul.blockList li.blockList, ul.blockList ul.blockListLast li.blockList {
+ padding:0px 20px 5px 10px;
+ border:1px solid #ededed;
+ background-color:#f8f8f8;
+}
+ul.blockList ul.blockList ul.blockList li.blockList, ul.blockList ul.blockList ul.blockListLast li.blockList {
+ padding:0 0 5px 8px;
+ background-color:#ffffff;
+ border:none;
+}
+ul.blockList ul.blockList ul.blockList ul.blockList li.blockList {
+ margin-left:0;
+ padding-left:0;
+ padding-bottom:15px;
+ border:none;
+}
+ul.blockList ul.blockList ul.blockList ul.blockList li.blockListLast {
+ list-style:none;
+ border-bottom:none;
+ padding-bottom:0;
+}
+table tr td dl, table tr td dl dt, table tr td dl dd {
+ margin-top:0;
+ margin-bottom:1px;
+}
+/*
+Table styles
+*/
+.overviewSummary, .memberSummary, .typeSummary, .useSummary, .constantsSummary, .deprecatedSummary {
+ width:100%;
+ border-left:1px solid #EEE;
+ border-right:1px solid #EEE;
+ border-bottom:1px solid #EEE;
+}
+.overviewSummary, .memberSummary {
+ padding:0px;
+}
+.overviewSummary caption, .memberSummary caption, .typeSummary caption,
+.useSummary caption, .constantsSummary caption, .deprecatedSummary caption {
+ position:relative;
+ text-align:left;
+ background-repeat:no-repeat;
+ color:#253441;
+ font-weight:bold;
+ clear:none;
+ overflow:hidden;
+ padding:0px;
+ padding-top:10px;
+ padding-left:1px;
+ margin:0px;
+ white-space:pre;
+}
+.overviewSummary caption a:link, .memberSummary caption a:link, .typeSummary caption a:link,
+.useSummary caption a:link, .constantsSummary caption a:link, .deprecatedSummary caption a:link,
+.overviewSummary caption a:hover, .memberSummary caption a:hover, .typeSummary caption a:hover,
+.useSummary caption a:hover, .constantsSummary caption a:hover, .deprecatedSummary caption a:hover,
+.overviewSummary caption a:active, .memberSummary caption a:active, .typeSummary caption a:active,
+.useSummary caption a:active, .constantsSummary caption a:active, .deprecatedSummary caption a:active,
+.overviewSummary caption a:visited, .memberSummary caption a:visited, .typeSummary caption a:visited,
+.useSummary caption a:visited, .constantsSummary caption a:visited, .deprecatedSummary caption a:visited {
+ color:#FFFFFF;
+}
+.overviewSummary caption span, .memberSummary caption span, .typeSummary caption span,
+.useSummary caption span, .constantsSummary caption span, .deprecatedSummary caption span {
+ white-space:nowrap;
+ padding-top:5px;
+ padding-left:12px;
+ padding-right:12px;
+ padding-bottom:7px;
+ display:inline-block;
+ float:left;
+ background-color:#F8981D;
+ border: none;
+ height:16px;
+}
+.memberSummary caption span.activeTableTab span {
+ white-space:nowrap;
+ padding-top:5px;
+ padding-left:12px;
+ padding-right:12px;
+ margin-right:3px;
+ display:inline-block;
+ float:left;
+ background-color:#F8981D;
+ height:16px;
+}
+.memberSummary caption span.tableTab span {
+ white-space:nowrap;
+ padding-top:5px;
+ padding-left:12px;
+ padding-right:12px;
+ margin-right:3px;
+ display:inline-block;
+ float:left;
+ background-color:#4D7A97;
+ height:16px;
+}
+.memberSummary caption span.tableTab, .memberSummary caption span.activeTableTab {
+ padding-top:0px;
+ padding-left:0px;
+ padding-right:0px;
+ background-image:none;
+ float:none;
+ display:inline;
+}
+.overviewSummary .tabEnd, .memberSummary .tabEnd, .typeSummary .tabEnd,
+.useSummary .tabEnd, .constantsSummary .tabEnd, .deprecatedSummary .tabEnd {
+ display:none;
+ width:5px;
+ position:relative;
+ float:left;
+ background-color:#F8981D;
+}
+.memberSummary .activeTableTab .tabEnd {
+ display:none;
+ width:5px;
+ margin-right:3px;
+ position:relative;
+ float:left;
+ background-color:#F8981D;
+}
+.memberSummary .tableTab .tabEnd {
+ display:none;
+ width:5px;
+ margin-right:3px;
+ position:relative;
+ background-color:#4D7A97;
+ float:left;
+
+}
+.overviewSummary td, .memberSummary td, .typeSummary td,
+.useSummary td, .constantsSummary td, .deprecatedSummary td {
+ text-align:left;
+ padding:0px 0px 12px 10px;
+}
+th.colOne, th.colFirst, th.colLast, .useSummary th, .constantsSummary th,
+td.colOne, td.colFirst, td.colLast, .useSummary td, .constantsSummary td{
+ vertical-align:top;
+ padding-right:0px;
+ padding-top:8px;
+ padding-bottom:3px;
+}
+th.colFirst, th.colLast, th.colOne, .constantsSummary th {
+ background:#dee3e9;
+ text-align:left;
+ padding:8px 3px 3px 7px;
+}
+td.colFirst, th.colFirst {
+ white-space:nowrap;
+ font-size:13px;
+}
+td.colLast, th.colLast {
+ font-size:13px;
+}
+td.colOne, th.colOne {
+ font-size:13px;
+}
+.overviewSummary td.colFirst, .overviewSummary th.colFirst,
+.useSummary td.colFirst, .useSummary th.colFirst,
+.overviewSummary td.colOne, .overviewSummary th.colOne,
+.memberSummary td.colFirst, .memberSummary th.colFirst,
+.memberSummary td.colOne, .memberSummary th.colOne,
+.typeSummary td.colFirst{
+ width:25%;
+ vertical-align:top;
+}
+td.colOne a:link, td.colOne a:active, td.colOne a:visited, td.colOne a:hover, td.colFirst a:link, td.colFirst a:active, td.colFirst a:visited, td.colFirst a:hover, td.colLast a:link, td.colLast a:active, td.colLast a:visited, td.colLast a:hover, .constantValuesContainer td a:link, .constantValuesContainer td a:active, .constantValuesContainer td a:visited, .constantValuesContainer td a:hover {
+ font-weight:bold;
+}
+.tableSubHeadingColor {
+ background-color:#EEEEFF;
+}
+.altColor {
+ background-color:#FFFFFF;
+}
+.rowColor {
+ background-color:#EEEEEF;
+}
+/*
+Content styles
+*/
+.description pre {
+ margin-top:0;
+}
+.deprecatedContent {
+ margin:0;
+ padding:10px 0;
+}
+.docSummary {
+ padding:0;
+}
+
+ul.blockList ul.blockList ul.blockList li.blockList h3 {
+ font-style:normal;
+}
+
+div.block {
+ font-size:14px;
+ font-family:'DejaVu Serif', Georgia, "Times New Roman", Times, serif;
+}
+
+td.colLast div {
+ padding-top:0px;
+}
+
+
+td.colLast a {
+ padding-bottom:3px;
+}
+/*
+Formatting effect styles
+*/
+.sourceLineNo {
+ color:green;
+ padding:0 30px 0 0;
+}
+h1.hidden {
+ visibility:hidden;
+ overflow:hidden;
+ font-size:10px;
+}
+.block {
+ display:block;
+ margin:3px 10px 2px 0px;
+ color:#474747;
+}
+.deprecatedLabel, .descfrmTypeLabel, .memberNameLabel, .memberNameLink,
+.overrideSpecifyLabel, .packageHierarchyLabel, .paramLabel, .returnLabel,
+.seeLabel, .simpleTagLabel, .throwsLabel, .typeNameLabel, .typeNameLink {
+ font-weight:bold;
+}
+.deprecationComment, .emphasizedPhrase, .interfaceName {
+ font-style:italic;
+}
+
+div.block div.block span.deprecationComment, div.block div.block span.emphasizedPhrase,
+div.block div.block span.interfaceName {
+ font-style:normal;
+}
+
+div.contentContainer ul.blockList li.blockList h2{
+ padding-bottom:0px;
+}
diff --git a/graph/lib/graph.jar b/graph/lib/graph.jar
new file mode 100644
index 0000000..2baa56c
Binary files /dev/null and b/graph/lib/graph.jar differ
diff --git a/graph/src/graph/AdjacencyMatrix.java b/graph/src/graph/AdjacencyMatrix.java
new file mode 100644
index 0000000..d5ecb15
--- /dev/null
+++ b/graph/src/graph/AdjacencyMatrix.java
@@ -0,0 +1,250 @@
+package graph;
+
+import java.util.Arrays;
+
+/**
+ *
+ * @author Hebmann Julien, Rogeon Louis
+ * a class that implements Graph as an adjacency matrix
+ */
+
+public class AdjacencyMatrix implements Graph{
+
+ /**
+ * the adjacency matrix
+ */
+ private int[][] matrix = {};
+
+ /**
+ * boolean to know if the graph is a directed one
+ */
+ private boolean isDirected = false;
+ /**
+ * vertex array containing all vertices in the graph
+ */
+ private Vertex[] vertices = {};
+
+ /**
+ * constructor of the class
+ */
+ public AdjacencyMatrix(){
+
+ }
+
+ /**
+ * constructor of the class with the option to create a directed graph
+ */
+ public AdjacencyMatrix(boolean isDirected){
+ this.isDirected = isDirected;
+ }
+
+ /**
+ * getter of vertices
+ * @return the vertices of the graph
+ */
+ public Vertex[] getVertices() {
+ return vertices;
+ }
+
+ /**
+ * setter of vertices
+ * @param vertices Vertex Array that will be added to the graph
+ */
+ public void setVertices(Vertex[] vertices) {
+ this.vertices = vertices;
+ }
+
+ /**
+ * method to add a Vertex to the graph
+ * @param v Vertex that will be added to the graph
+ */
+ public void addVertex(Vertex v){
+ if (place(v) == -1){
+ vertices = addElement(vertices, v);
+ setMatrix(addElement(getMatrix()));
+ }
+ else
+ System.out.println("A Vertex with this Object already exists !");
+ }
+
+ /**
+ * method to add an Edge to the graph, will add the edge's vertices if they're not present in the graph
+ * @param e Edge that will be added to the graph
+ */
+ public void addEdge(Edge e){
+ if (place(e.extremitie1)==-1){
+ System.out.println("The first Vertex didn't exist and was added to the graph");
+ this.addVertex(e.extremitie1);
+ }
+
+ if (place(e.extremitie2)==-1){
+ System.out.println("The second Vertex didn't exist and was added to the graph");
+ this.addVertex(e.extremitie2);
+ }
+
+ getMatrix()[place(e.extremitie1)][place(e.extremitie2)] = 1;
+ if (!isDirected)
+ getMatrix()[place(e.extremitie2)][place(e.extremitie1)] = 1;
+ }
+
+ /**
+ * method to add an Edge to the graph if the vertices are already part of the graph
+ * @param v1 the first Vertex
+ * @param v2 the second Vertex
+ */
+ public void addEdge(Vertex v1, Vertex v2){
+ if (place(v1)==-1){
+ System.out.println("The first Vertex didn't exist and was added to the graph");
+ this.addVertex(v1);
+ }
+
+ if (place(v2)==-1){
+ System.out.println("The second Vertex didn't exist and was added to the graph");
+ this.addVertex(v2);
+ }
+
+ getMatrix()[place(v1)][place(v2)] = 1;
+ if (!isDirected)
+ getMatrix()[place(v2)][place(v1)] = 1;
+ }
+
+ /**
+ * method to know the position of a vertex in the vertex array, depending of his id
+ * @param v Vertex that will be searched
+ * @return the position of the Vertex if he's in the graph, or -1 if it isn't
+ */
+ private int place(Vertex v) {
+ for (int i=0 ; i