Advertisement
Guest User

Untitled

a guest
Feb 25th, 2020
145
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.25 KB | None | 0 0
  1. /*
  2. * CSE 205: <11333> T-TH 4:30-5:45
  3. * Assignment <Assignment02>
  4. * Papa Demba Diack ASU ID 1216303829 and Abdullah Mahfuz ASU ID 1217109439
  5. * Description: MyLinkedList.java
  6. */
  7. import java.util.NoSuchElementException;
  8.  
  9. public class MyLinkedList implements MyList {
  10. private Node head = null;
  11. private int size = 0;
  12.  
  13.  
  14. @Override
  15. public void add(Object o) {
  16. Node newNode = new Node();
  17. newNode.data = 0;
  18. if ( head == null)
  19. head= newNode;
  20. else {
  21. Node curr = head;
  22. while(curr.next != null)
  23. curr = curr.next;
  24. curr.next = newNode;
  25. }
  26. size++;
  27. }
  28.  
  29. @Override
  30. public void insert(int index, Object o)
  31. {
  32. if (index < 0 || index > size)
  33. throw new NoSuchElementException();
  34.  
  35. Node newNode = new Node();
  36. newNode.data = 0;
  37. if(index == 0) {
  38. Node temp = head;
  39. head = newNode;
  40. head.next= temp;
  41. }
  42. else {
  43. Node curr = head;
  44. for (int i = 0; i<index -1;i++)
  45. curr = curr.next;
  46. Node after = curr.next;
  47. curr.next = newNode;
  48. newNode.next = after;
  49. }
  50. size++;
  51. }
  52.  
  53. @Override
  54. public void remove(int index) {
  55. if (index < 0 || index>= size)
  56. throw new NoSuchElementException();
  57. if (index == 0)
  58. head = head.next;
  59. else {
  60. Node curr = head;
  61. for (int i = 0; i<index-1;i++)
  62. curr = curr.next;
  63. curr.next = curr.next.next;
  64. }
  65. size--;
  66. }
  67.  
  68. @Override
  69. public Object get(int index) {
  70. if (index < 0 || index > size)
  71. throw new NoSuchElementException();
  72.  
  73. Node curr = head;
  74. for ( int i = 0; i<index; i++) {
  75. curr = curr.next;
  76.  
  77. }
  78. return curr.data;
  79.  
  80. }
  81.  
  82. @Override
  83. public int size() {
  84. return this.size;
  85. }
  86.  
  87. // Do not alter the code below
  88.  
  89. public MyListIterator getIterator() {
  90. return new MyLinkedListIterator();
  91. }
  92.  
  93. private class MyLinkedListIterator implements MyListIterator {
  94. Node currentNode = null;
  95.  
  96. @Override
  97. public Object next() {
  98. if (currentNode != null)
  99. currentNode = currentNode.next;
  100. else
  101. currentNode = head;
  102.  
  103. return currentNode.data;
  104. }
  105.  
  106. @Override
  107. public boolean hasNext() {
  108. if (currentNode != null)
  109. return currentNode.next != null;
  110. else
  111. return head != null;
  112. }
  113. }
  114.  
  115. class Node {
  116. public Object data = null;
  117. public Node next = null;
  118.  
  119. }
  120. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement