40 lines
759 B
Java
40 lines
759 B
Java
|
public class DoublyLinkedList {
|
||
|
|
||
|
int[] next;
|
||
|
int[] prev;
|
||
|
|
||
|
public DoublyLinkedList(int maxSize) {
|
||
|
// 0 - dummy element
|
||
|
next = new int[maxSize + 1];
|
||
|
prev = new int[maxSize + 1];
|
||
|
}
|
||
|
|
||
|
public void insert(int x, int pos) {
|
||
|
prev[x] = pos;
|
||
|
next[x] = next[pos];
|
||
|
prev[next[x]] = x;
|
||
|
next[prev[x]] = x;
|
||
|
}
|
||
|
|
||
|
public void remove(int x) {
|
||
|
next[prev[x]] = next[x];
|
||
|
prev[next[x]] = prev[x];
|
||
|
}
|
||
|
|
||
|
// Usage example
|
||
|
public static void main(String[] args) {
|
||
|
int n = 10;
|
||
|
DoublyLinkedList list = new DoublyLinkedList(n);
|
||
|
for (int i = 1; i <= n; i++) {
|
||
|
list.insert(i, 0);
|
||
|
}
|
||
|
list.remove(1);
|
||
|
list.remove(10);
|
||
|
list.remove(5);
|
||
|
for (int i = list.next[0]; i != 0; i = list.next[i]) {
|
||
|
System.out.print(i + " ");
|
||
|
}
|
||
|
System.out.println();
|
||
|
}
|
||
|
}
|