Advertisement
Guest User

Untitled

a guest
Nov 20th, 2014
125
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.22 KB | None | 0 0
  1. package devoirCollection;
  2.  
  3. import java.util.AbstractList;
  4. import java.util.Iterator;
  5. import java.util.List;
  6.  
  7. public class MyLinkedList<E> extends AbstractList<E> implements List<E> {
  8. private Node<E> start;
  9. private Node<E> end;
  10. private int curSize;//Number of non-null element of the list
  11. /*
  12. * Constructeur sans argument
  13. */
  14. public MyLinkedList(){
  15. start = new Node<E> (null);
  16. end=new Node<E>(null);
  17. start.setNext(end);
  18. end.setPrev(start);
  19. curSize=0;
  20. }
  21. /*
  22. * (non-Javadoc)
  23. * @see java.util.AbstractList#get(int)
  24. */
  25. public E get(int index) {
  26. if(index<0 || index>=this.size()){
  27. throw new IndexOutOfBoundsException();
  28. }
  29. Node<E> tmp = start.getNext();
  30. for(int i=0; i<index; i++){
  31. tmp=tmp.getNext();
  32. }
  33. return tmp.getElement();
  34. }
  35. /*
  36. * (non-Javadoc)
  37. * @see java.util.AbstractCollection#size()
  38. */
  39. public int size() {
  40. return curSize;
  41. }
  42.  
  43. /*
  44. * (non-Javadoc)
  45. * @see java.util.AbstractList#add(int, java.lang.Object)
  46. */
  47. public void add(int index, E item) {
  48. if(index<0 || index>size()){
  49. throw new IndexOutOfBoundsException();
  50. }
  51. Node<E> tmp = start;
  52. for(int i=0; i<index; i++){
  53. tmp=tmp.getNext(); //Tmp est le noeud avant index
  54. }
  55. //CrŽation du nouveau noeud
  56. Node<E> newNode = new Node<E>(item);
  57. newNode.setElement(item);
  58. newNode.setPrev(tmp);
  59. newNode.setNext(tmp.getNext());
  60. newNode.getNext().setPrev(newNode);
  61. tmp.setNext(newNode);
  62. curSize++;
  63. }
  64.  
  65. /*
  66. * (non-Javadoc)
  67. * @see java.util.AbstractList#remove(int)
  68. */
  69. public E remove(int index) {
  70. E a ;
  71. a = get(index);
  72. if(index<0 || index>=size()){
  73. throw new IndexOutOfBoundsException();
  74. }
  75. Node<E> tmp = start;
  76. for(int i=0; i<index; i++){
  77. tmp=tmp.getNext();
  78. }
  79. tmp.setNext(tmp.getNext().getNext());
  80. tmp.getNext().getNext().setPrev(tmp);
  81. curSize--;
  82. return a;
  83. }
  84.  
  85.  
  86. /*
  87. * (non-Javadoc)
  88. * @see java.util.AbstractList#set(int, java.lang.Object)
  89. */
  90. public E set(int index, E item) {
  91. E a ;
  92. a = get(index);
  93. if(index<0 || index>=size()){
  94. throw new IndexOutOfBoundsException();
  95. }
  96. Node<E> tmp = start;
  97. for(int i=0; i==index; i++){
  98. tmp=tmp.getNext();
  99. }
  100. tmp.setElement(item);
  101. return a;
  102. }
  103.  
  104. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement