jtentor

LinkedList 2da parte - SimpleLinkedOrderedList.java

Oct 23rd, 2021
597
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. //
  2. // Created by Julio Tentor <jtentor@fi.unju.edu.ar>
  3. //
  4.  
  5. public class SimpleLinkedOrderedList<ELEMENT extends Comparable<ELEMENT>> extends SimpleLinkedList<ELEMENT> implements ILinkedOrderedList<ELEMENT> {
  6.  
  7.     //region Constructors
  8.  
  9.     public SimpleLinkedOrderedList() {
  10.         super();
  11.     }
  12.     //endregion
  13.  
  14.  
  15.     //region Ordered List Methods
  16.  
  17.     public void addInOrder(ELEMENT item) {
  18.         if (this.size() == 0) {
  19.             this.head = this.tail = new Node<ELEMENT>(item, null);
  20.             ++this.count;
  21.         }
  22.         else {
  23.             if (item.compareTo(this.head.item) <= 0) {
  24.                 this.addFirst(item);
  25.             }
  26.             else {
  27.                 if (item.compareTo(this.tail.item) > 0) {
  28.                     this.addLast(item);
  29.                 }
  30.                 else {
  31.                     Node<ELEMENT> skip = this.head;
  32.                     while ((skip != null) && (skip.next != null) && (item.compareTo(skip.next.item) > 0)) {
  33.                         skip = skip.next;
  34.                     }
  35.                     if (skip == null) {
  36.                         throw new RuntimeException("Algo está mal en el orden de los elementos de la lista...");
  37.                     }
  38.                     else {
  39.                         Node<ELEMENT> temp = new Node<ELEMENT>(item, skip.next);
  40.                         skip.next = temp;
  41.                         ++this.count;
  42.                     }
  43.                 }
  44.             }
  45.         }
  46.  
  47.     }
  48.  
  49. //    public boolean findAndRemove(ELEMENT item) {
  50. //        if (this.size() == 0) {
  51. //            return false;
  52. //        }
  53. //
  54. //        DoubleLinkedList.Node<ELEMENT> skip = this.head;
  55. //        while ((skip != null) && !(item.compareTo(skip.item) == 0)) {
  56. //            skip = skip.next;
  57. //        }
  58. //        if (skip == null) {
  59. //            return false;
  60. //        }
  61. //        else {
  62. //            if (skip.prev == null) {
  63. //                this.removeFirst();
  64. //                return true;
  65. //            }
  66. //            else {
  67. //                if (skip.next == null) {
  68. //                    this.removeLast();
  69. //                    return true;
  70. //                }
  71. //                else {
  72. //                    skip.prev.next = skip.next;
  73. //                    skip.next.prev = skip.prev;
  74. //                    skip.prev = skip.next = null;
  75. //                    return true;
  76. //                }
  77. //            }
  78. //        }
  79. //    }
  80.  
  81.     //endregion
  82.  
  83. }
  84.  
RAW Paste Data