Advertisement
Guest User

Untitled

a guest
Oct 21st, 2016
57
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.46 KB | None | 0 0
  1. package com.careercup.linkedlist;
  2.  
  3. public class DoubleLinkedList<AnyType> {
  4.  
  5. private Node<AnyType> nodeFirst;
  6. private Node<AnyType> nodeLast;
  7. private Node<AnyType> nodeIndex;
  8.  
  9. public DoubleLinkedList() {
  10. nodeFirst = null;
  11. nodeLast = null;
  12. }
  13.  
  14. public void iterReset() {
  15. nodeIndex = nodeFirst;
  16. }
  17.  
  18. public AnyType iterNext() {
  19. AnyType data = null;
  20. if (nodeIndex != null) {
  21. data = nodeIndex.getData();
  22. }
  23. Node<AnyType> nodeNext = nodeIndex.getNext();
  24. if (nodeNext != null) {
  25. nodeIndex = nodeNext;
  26. }
  27. return data;
  28. }
  29.  
  30. public AnyType iterPrev() {
  31. AnyType data = null;
  32. if (nodeIndex != null) {
  33. data = nodeIndex.getData();
  34. }
  35. Node<AnyType> nodePrev = nodeIndex.getPrev();
  36. if (nodePrev != null) {
  37. nodeIndex = nodePrev;
  38. }
  39. return data;
  40. }
  41.  
  42. public void addLast( AnyType data ) {
  43. Node<AnyType> nodeNew = new Node<AnyType>(data);
  44.  
  45. if (nodeFirst == null) {
  46. nodeFirst = nodeLast = nodeNew;
  47. return;
  48. }
  49.  
  50. nodeNew.setPrev(nodeLast);
  51.  
  52. nodeLast.setNext(nodeNew);
  53.  
  54. nodeLast = nodeNew;
  55.  
  56. }
  57.  
  58. public void addFirst( AnyType data ) {
  59. Node<AnyType> nodeNew = new Node<AnyType>(data);
  60.  
  61. if (nodeFirst == null) {
  62. nodeFirst = nodeLast = nodeNew;
  63. return;
  64. }
  65.  
  66. nodeNew.setNext(nodeFirst);
  67.  
  68. nodeFirst.setPrev(nodeNew);
  69.  
  70. nodeFirst = nodeNew;
  71.  
  72. }
  73.  
  74. public class Node<AnyType> {
  75.  
  76. private AnyType data;
  77. private Node<AnyType> next;
  78. private Node<AnyType> prev;
  79.  
  80. public Node( AnyType data ) {
  81. this.data = data;
  82. }
  83.  
  84. public Node<AnyType> getNext() {
  85. return next;
  86. }
  87.  
  88. public void setNext( Node<AnyType> next ) {
  89. this.next = next;
  90. }
  91.  
  92. public Node<AnyType> getPrev() {
  93. return prev;
  94. }
  95.  
  96. public void setPrev( Node<AnyType> prev ) {
  97. this.prev = prev;
  98. }
  99.  
  100. public AnyType getData() {
  101. return data;
  102. }
  103.  
  104. }
  105.  
  106. public static void main( String[] args ) {
  107.  
  108. DoubleLinkedList<Integer> list = new DoubleLinkedList<>();
  109.  
  110. list.addLast(2);
  111. list.addLast(3);
  112. list.addFirst(1);
  113. list.addFirst(0);
  114.  
  115. list.iterReset();
  116.  
  117. for (int idx = 0; idx < 8; idx++) {
  118. System.out.printf("%d ", list.iterNext());
  119. }
  120. System.out.println();
  121.  
  122. for (int idx = 0; idx < 8; idx++) {
  123. System.out.printf("%d ", list.iterPrev());
  124. }
  125. System.out.println();
  126.  
  127. }
  128.  
  129. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement