diff --git a/TP4/Base.java b/TP4/Base.java
new file mode 100644
index 0000000..db31dc5
--- /dev/null
+++ b/TP4/Base.java
@@ -0,0 +1,3 @@
+public enum Base {
+ A, T, C, G;
+}
diff --git a/TP4/Exemple.java b/TP4/Exemple.java
new file mode 100644
index 0000000..1f5eafd
--- /dev/null
+++ b/TP4/Exemple.java
@@ -0,0 +1,21 @@
+public class Exemple {
+ public static void main(String[] args) {
+
+ MonBrin brin = new MonBrin();
+
+ brin.ajouterFin(Base.G);
+ brin.ajouterFin(Base.C);
+ brin.ajouterFin(Base.T);
+ brin.ajouterFin(Base.T);
+ brin.ajouterFin(Base.A);
+ brin.ajouterFin(Base.G);
+
+ System.out.println(brin); // gcttag
+
+
+ Iterator it = brin.iterator();
+ while(it.hasNext()) {
+ System.out.println(it.next());
+ }
+ }
+}
diff --git a/TP4/MonBrin.java b/TP4/MonBrin.java
new file mode 100644
index 0000000..4707f60
--- /dev/null
+++ b/TP4/MonBrin.java
@@ -0,0 +1,48 @@
+public class MonBrin {
+ private MonMaillon head;
+
+ public MonBrin() {
+ this.head = null;
+ }
+
+ // Ajouter une base au début du brin
+ public void ajouterDebut(Base b) {
+ head = new MonMaillon(b, head);
+ }
+
+ // Ajouter une base à la fin du brin
+ public void ajouterFin(Base b) {
+ if (head == null) {
+ head = new MonMaillon(b, null);
+ return;
+ }
+
+ MonMaillon courant = head;
+ while (courant.getNext() != null) {
+ courant = courant.getNext();
+ }
+
+ courant.setNext(new MonMaillon(b, null));
+ }
+
+ public MonMaillon getHead() {
+ return head;
+ }
+
+ // Fournir un itérateur maison
+ public Iterator iterator() {
+ return new MonBrinIterator(this.head);
+ }
+
+ // Pour affichage du brin entier
+ @Override
+ public String toString() {
+ String s = "";
+ MonMaillon courant = head;
+ while (courant != null) {
+ s += courant.getBase().toString();
+ courant = courant.getNext();
+ }
+ return s.toLowerCase(); // affiche : gcttag
+ }
+}
diff --git a/TP4/MonMaillon.java b/TP4/MonMaillon.java
new file mode 100644
index 0000000..b186fd9
--- /dev/null
+++ b/TP4/MonMaillon.java
@@ -0,0 +1,21 @@
+public class MonMaillon {
+ private Base base;
+ private MonMaillon next;
+
+ public MonMaillon(Base b, MonMaillon suivant) {
+ this.base = b;
+ this.next = suivant;
+ }
+
+ public Base getBase() {
+ return base;
+ }
+
+ public MonMaillon getNext() {
+ return next;
+ }
+
+ public void setNext(MonMaillon n) {
+ this.next = n;
+ }
+}