package list;
// listes doublement chaînées
class Doubly {
int element;
Doubly next, prev;
// liste réduite à un élément
Doubly(int value) {
this.element = value;
this.next = this.prev = null;
}
// insertion après un élément donné
void insertAfter(int v) {
Doubly e = new Doubly(v);
e.prev = this;
if (this.next != null) {
e.next = this.next;
e.next.prev = e;
}
this.next = e;
}
// exercice
void insertBefore(int v) {
Doubly e = new Doubly(v);
e.next = this;
if (this.prev != null) {
e.prev = this.prev;
e.prev.next = e;
}
this.prev = e;
}
// suppression d'un élément donné
void remove() {
if (this.prev != null)
this.prev.next = this.next;
if (this.next != null)
this.next.prev = this.prev;
}
// affichage
static void println(Doubly c) {
if (c != null) {
System.out.print(c.element);
c = c.next;
for (; c != null;) {
System.out.print(" <-> " + c.element);
c = c.next;
}
}
System.out.print("\n");
}
}