aboutsummaryrefslogtreecommitdiffstats
path: root/src/datastructures/linkedlists/ArrayTaillessXORDoublyLinkedList.java
diff options
context:
space:
mode:
authorMattias Andrée <maandree@operamail.com>2014-01-23 15:50:29 +0100
committerMattias Andrée <maandree@operamail.com>2014-01-23 15:50:29 +0100
commitee6fa2e0bf2dcd6cdd833aa2f19fd30e9c23770b (patch)
treea0afde7dbf01ed39ccd0074e4eeff574f90c5109 /src/datastructures/linkedlists/ArrayTaillessXORDoublyLinkedList.java
parentdoc (diff)
downloadalgorithms-and-data-structures-ee6fa2e0bf2dcd6cdd833aa2f19fd30e9c23770b.tar.gz
algorithms-and-data-structures-ee6fa2e0bf2dcd6cdd833aa2f19fd30e9c23770b.tar.bz2
algorithms-and-data-structures-ee6fa2e0bf2dcd6cdd833aa2f19fd30e9c23770b.tar.xz
xor-linked array linked lists
Signed-off-by: Mattias Andrée <maandree@operamail.com>
Diffstat (limited to 'src/datastructures/linkedlists/ArrayTaillessXORDoublyLinkedList.java')
-rw-r--r--src/datastructures/linkedlists/ArrayTaillessXORDoublyLinkedList.java37
1 files changed, 37 insertions, 0 deletions
diff --git a/src/datastructures/linkedlists/ArrayTaillessXORDoublyLinkedList.java b/src/datastructures/linkedlists/ArrayTaillessXORDoublyLinkedList.java
new file mode 100644
index 0000000..6984c19
--- /dev/null
+++ b/src/datastructures/linkedlists/ArrayTaillessXORDoublyLinkedList.java
@@ -0,0 +1,37 @@
+/**
+ * Copyright © 2014 Mattias Andrée (maandree@member.fsf.org)
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+package datastructures.linkedlists;
+
+
+/**
+ * Array tailless XOR doubly linked list class. An array
+ * linked list is a linked list constructed by parallel
+ * arrays. In an XOR doubly linked list each node as a
+ * reference that is the bitwise exclusive-or or the
+ * address to both the next and the previous node. In this
+ * implementation, when a node is removed the value stored
+ * that that position is not removed before that position
+ * is reused. Insertion methods have constant amortised
+ * time complexity, and constant amortised memory
+ * complexity, removal methods have constant time
+ * complexity and constant memory complexity.
+ *
+ * @param <T> The value stored in the structure
+ */
+£>export name=ArrayTaillessXORDoublyLinkedList array=1 with_sentinel=0 with_head=1 with_tail=0 with_prev=1 with_xor=1
+£>$GPP -s £ < src/datastructures/linkedlists/template | sed -e '/^[/ ]\*/d' -e '/^$/d'
+