Advertisement
Guest User

Untitled

a guest
Jul 22nd, 2017
54
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.89 KB | None | 0 0
  1. package trak.datastructures;
  2. import trak.datastructures.*;
  3. /**
  4. * Linked list implementation
  5. * Data Structures and Algorithms T 2011
  6. * T-106.1220
  7. *
  8. * Author: Your name here
  9. */
  10.  
  11. //IMPLEMENT THE METHODS
  12. //YOU MIGHT NEED OTHER METHODS TOO!
  13.  
  14.  
  15. public class TrakLinkedList {
  16.  
  17. TrakListNode first;
  18. TrakListNode last;
  19.  
  20. public TrakLinkedList(){
  21. this.first = null;
  22. this.last = null;
  23. }
  24.  
  25. public void addFirst(Object item) {
  26. TrakListNode node = new TrakListNode(item);
  27. TrakListNode wanha = this.first;
  28.  
  29. if(this.first == null && this.last == null){
  30. this.first = node;
  31. this.last = node;
  32. return;
  33.  
  34. }
  35.  
  36. this.first = node; //Laitetaan uusi firsti
  37. node.setPrevious(wanha); //UUden noden previous on vanha firsti
  38. wanha.setNext(node);
  39.  
  40.  
  41.  
  42.  
  43.  
  44.  
  45. }
  46.  
  47. public void addLast(Object item) {
  48. TrakListNode node = new TrakListNode(item);
  49. TrakListNode wanha = this.last;
  50.  
  51. if(this.first == null && this.last == null){
  52. this.first = node;
  53. this.last = node;
  54. return;
  55. }
  56.  
  57. this.last = node;
  58. node.setNext(wanha);
  59. wanha.setPrevious(node);
  60.  
  61. }
  62.  
  63. public Object getFirst(){
  64. if(this.first == null)
  65. return null;
  66. else
  67. return this.first.getValue();
  68.  
  69. }
  70.  
  71. public Object getLast(){
  72. if(this.last == null)
  73. return null;
  74. else
  75. return this.last.getValue();
  76. }
  77.  
  78.  
  79. public void addPosition(int n, Object item) {
  80. TrakListNode node = new TrakListNode(item);
  81. TrakListNode next;
  82. TrakListNode previous;
  83. TrakListNode temp = this.last;
  84. TrakListNode temp2;
  85. int i = 1;
  86.  
  87. if(n == 1 && this.first == null && this.last == null){
  88. this.last = node;
  89. this.first = node;
  90. return;
  91. }
  92.  
  93.  
  94. while(i < n){
  95.  
  96. if(temp != null && temp.getNext() == null && n-i==1){
  97. temp.setNext(node);
  98. node.setPrevious(temp);
  99. this.first = node;
  100. return;
  101. }
  102.  
  103. else if (temp == null){
  104. return;
  105. }
  106. temp2 = temp;
  107. temp = temp.getNext();
  108.  
  109.  
  110. i++;
  111. }
  112.  
  113. next = temp;
  114. previous = temp.getPrevious();
  115.  
  116. node.setNext(temp);
  117. next.setPrevious(node);
  118.  
  119. previous.setNext(node);
  120. node.setPrevious(previous);
  121.  
  122.  
  123. }
  124.  
  125. public void removePosition(int n) {
  126. TrakListNode next;
  127. TrakListNode previous;
  128. TrakListNode temp = this.last;
  129. int i = 1;
  130.  
  131. while(i < n){ //Etsii poistettavan noden
  132. if(temp == null)
  133. return;
  134.  
  135. temp = temp.getNext();
  136. i++;
  137.  
  138. }
  139.  
  140. if(temp == null)
  141. return;
  142.  
  143. next = temp.getNext();
  144. previous = temp.getPrevious();
  145.  
  146.  
  147. if(previous != null)
  148. previous.setNext(next);
  149. if(next != null)
  150. next.setPrevious(previous);
  151. if(previous == null && next != null)
  152. this.last = next;
  153. if(next == null && previous != null)
  154. this.first = previous;
  155. if(next == null && previous == null){
  156.  
  157. this.last = null;
  158. this.first = null;
  159. }
  160.  
  161. }
  162.  
  163. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement