Я работаю над методом, который вставляет указанный элемент в нужное положение в отсортированном списке, и я могу вставить один и тот же элемент несколько раз. Однако мой метод не вставлял элемент, и я мог бы Не поймите, почему он не вставляет весь элемент в правильное положение! это мой кодВставка в отсортированный узел
ответ
Кажется, что вы вставляете новый товар только в том случае, если current
равно null. Но когда взгляд ближе в приведенном выше цикле, цикл может выйти и current
не является нулевым (если первый)
так, если first if
правда элемент не попасть в linked list
else{ //insert into sorted list
Node d=new Node(element);
Node current = head;
Node pre=null;
while(current!=null){
if(c.compare(current.item, element)>0){
break;
}
else{
pre=current;
current=current.next;
}
}
if(current == null && pre!=null){ //insert new tail
pre.next=d;
tail=d;
d.pre=pre;
size++;
return this;
}
else { //insert when compare is successful and node not at tail.
d.pre = pre;
pre.next = d;
current.pre = d;
d.next = current;
return this;
}
}
Я отредактировал свой ответ, чтобы поставить оператор return, –
Если вы ищу способ, чтобы создать отсортированный список, который может иметь несколько элементов, я бы рекомендовал создать класс
public class SortedList<E> extends AbstractSequentialList<E> {
}
и осуществление необходимых операций. Вы можете посмотреть Collections.sort()
, если вы хотите сначала отсортировать список. После этого, всякий раз, когда вы вставляете или удаляете из списка, вы можете выполнить двоичный поиск, чтобы найти правильное местоположение.
Другой идеей было бы создать класс
public class Multiplicity<E> {
private E value;
private int numberOfDuplicates;
// etc. etc.
тогда, вы могли бы вместо того, чтобы просто использовать SortedSet<Multiplicity<E>>
и вместо того, чтобы вставить элемент, который уже есть или удаление один, вместо этого, вы увеличить или уменьшить значение счетчика.
- 1. Вставка строки в отсортированный массив
- 2. Вставка NSDictionary в отсортированный NSMutableArray
- 3. Вставка значений в отсортированный массив
- 4. Вставка в отсортированный список рекурсивно
- 5. Вставка числа в отсортированный массив!
- 6. Вставка элемента в отсортированный список
- 7. здание/вставка в отсортированный список
- 8. Вставка узла в отсортированный дважды связанный список
- 9. Вставка узла в предварительно отсортированный связанный список
- 10. Java - вставка/удаление в отсортированный список recursivey
- 11. Вставка узла в отсортированный связанный список в C
- 12. Вставка в отсортированный список, в постоянное время
- 13. Вставка в отсортированный связанный список в Java
- 14. Вставить узел в отсортированный двойной список
- 15. Вставка целого числа в отсортированный массив
- 16. Вставка в отсортированный дважды связанный список C++
- 17. Эффективная вставка строки в отсортированный DataFrame
- 18. Почему вставка в отсортированный массив O (n)?
- 19. Вставка элемента в уже отсортированный связанный список
- 20. LinkedList Узел вставка
- 21. Вставка html в узел cytoscape
- 22. Узел Вставка, связанные списки
- 23. Вставить узел в отсортированный список без указателя головы
- 24. Java: добавить узел в отсортированный дважды связанный список
- 25. Узел Knex вставка не выполняет
- 26. Вставка данных в существующий узел в xml
- 27. Вставка элемента в узел предка в xslt
- 28. Вставка значения в отсортированный массив без дубликатов: C++
- 29. Вставка элемента в отсортированный вектор и сохранение элементов отсортированы
- 30. Вставка XML-узел в определенном месте
Пожалуйста, введите код в правильном формате с отступом. –