Advertisement
Guest User

linkedlist

a guest
Oct 13th, 2019
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.47 KB | None | 0 0
  1. package ossm.manicom.sadie.arraysandlists;
  2. import java.util.*;
  3. public class linkedlistClass implements customList
  4. {
  5.  
  6. class Node
  7. {
  8. Node next;
  9. int data;
  10.  
  11. Node(Node next, int data)
  12. {
  13. this.data = data;
  14. this.next = next;
  15. }
  16.  
  17. private void doClear()
  18. {
  19. beginMarker = new Node<Integer>();
  20. endMarker = new Node<Integer>(null, beginMarker, null);
  21. beginMarker.next = endMarker;
  22.  
  23. theSize = 0;
  24. modCount++;
  25. }
  26. }
  27.  
  28. public linkedlistClass()
  29. {
  30. doClear();
  31. }
  32.  
  33. public void clear()
  34. {
  35. doClear();
  36. }
  37.  
  38. private void doClear()
  39. {
  40. beginMarker = new Node<Integer>(null, null, null);
  41. endMarker = new Node<Integer>(null, beginMarker, null);
  42. beginMarker.next = endMarker;
  43.  
  44. theSize = 0;
  45. modCount++;
  46. }
  47.  
  48. public int Size()
  49. {
  50. return theSize;
  51. }
  52.  
  53. public boolean isEmpty()
  54. {
  55. return size() == 0;
  56. }
  57.  
  58. public boolean Add(int x)
  59. {
  60. Add(size(), x);
  61. return true;
  62. }
  63.  
  64. public void Add(int idx, int x)
  65. {
  66. addBefore(getNode(idx, 0, size()), x);
  67. }
  68.  
  69. public int Get(int idx)
  70. {
  71. return getNode(idx).data;
  72. }
  73.  
  74. public int set(int idx, int newVal)
  75. {
  76. Node<Integer> p = getNode(idx);
  77. AnyType oldVal = p.data;
  78. p.data = newVal;
  79. return oldVal;
  80. }
  81.  
  82. public int Delete(int idx)
  83. {
  84. return Delete(getNode(idx));
  85. }
  86.  
  87. private void prepend(Node<Integer> p, int x)
  88. {
  89. Node<Integer> newNode = new Node<>(x, p.prev, p);
  90. newNode.prev.next = newNode;
  91. p.prev = newNode;
  92. theSize++;
  93. modCount++;
  94. }
  95.  
  96. private int Delete(Node<Integer> p)
  97. {
  98. p.next.prev = p.prev;
  99. p.prev.next = p.next;
  100. theSize--;
  101. modCount++;
  102. }
  103.  
  104. private Node<Integer> getNode(int idx)
  105. {
  106. return getNode(idx, 0, size() - 1);
  107. }
  108.  
  109. private Node<Integer> getNode(int idx, int lower, int upper)
  110. {
  111. Node<Integer> p;
  112.  
  113. if(idx < size() / 2)
  114. {
  115. p = beginMarker.next;
  116. for(int i = 0; i< idx; i++)
  117. p = p.next;
  118. }
  119.  
  120. else
  121. {
  122. p = endMarker;
  123. for(int i = size(); i > idx; i--)
  124. p=p.prev;
  125. }
  126.  
  127. return p;
  128. }
  129.  
  130.  
  131. @Override
  132. public void IncreaseListSize() {
  133. // TODO Auto-generated method stub
  134.  
  135. }
  136.  
  137. @Override
  138. public void incrementCounter() {
  139. // TODO Auto-generated method stub
  140.  
  141. }
  142.  
  143. public static void main(String[] args)
  144. {
  145. linkedlistClass mal = new linkedlistClass();
  146. mal.Add(new Integer(2));
  147. mal.Add(new Integer(5));
  148. for(int i=0; i<mal.Size(); i++)
  149. {
  150. System.out.println(i);
  151. }
  152. }
  153. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement