Advertisement
Guest User

Untitled

a guest
May 26th, 2019
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.23 KB | None | 0 0
  1. package series08;
  2.  
  3. public class DLList<T> {
  4. private int size;
  5. private DLNode<T> head;
  6. private DLNode<T> tail;
  7.  
  8. public DLList() {
  9. this.head = null;
  10. this.tail = null;
  11.  
  12. }
  13.  
  14. public int size() {
  15. return size;
  16. }
  17.  
  18. public boolean isEmpty() {
  19. return this.head == null;
  20. }
  21.  
  22. private DLNode<T> nodeAt(int index) {
  23. DLNode<T> current;
  24. if (index > (size / 2)) {
  25. current = this.tail;
  26. for (int i = size; i > index; i--) {
  27. current = current.prev;
  28. }
  29. } else {
  30. current = this.head;
  31. for (int i = 0; i < index; i++) {
  32. current = current.next;
  33.  
  34. }
  35. }
  36. return current;
  37. }
  38.  
  39. private T get(int index) {
  40. return nodeAt(index).value;
  41. }
  42.  
  43. private void add(T e, int index) {
  44. DLNode<T> node = new DLNode<T>(null, e, null);
  45.  
  46. if (size == 0 && index == 0) {
  47. head = node;
  48. tail = head;
  49. }
  50. if (size > 0 && index == 0) {
  51. node.next = head;
  52. head.prev = node;
  53. head = node;
  54. }
  55. if (size > 0 && index == size()) {
  56. node.prev = tail;
  57. tail.next = node;
  58. // prev.next=node;
  59. tail = node;
  60.  
  61. } else {
  62. DLNode<T> pred = nodeAt(index - 1);
  63. node.next = pred.next;
  64. pred.next.prev = node;
  65. node.prev = pred;
  66. pred.next = node;
  67.  
  68. }
  69. size++;
  70.  
  71. }
  72.  
  73. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement