April 2018
Beginner to intermediate
426 pages
10h 19m
English
We will overwrite the insert method with the code presented as follows:
insert(element, index = 0) { // {1} if (this.isEmpty()) { return super.insert(element, 0); // {2} } const pos = this.getIndexNextSortedElement(element); // {3} return super.insert(element, pos); // {4}}getIndexNextSortedElement(element) { let current = this.head; let i = 0; for (; i < this.size() && current; i++) { const comp = this.compareFn(element, current.element); // {5} if (comp === Compare.LESS_THAN) { // {6} return i; } current = current.next; } return i; // {7}}
As we do not want to allow inserting elements at any index, we will start assigning a default value to the index parameter ({1}), so we can simply evoke list.insert(myElement) ...