Как добавить элемент в список ADTSorted по значению, а не по положению
Поэтому я создаю SortedDoubleList, который является отсортированным списком ADT. Для вставки объекта в массив у меня есть:
Public void ListInsert(int posi, int newItem){
throws RuntimeException, IndexOutOfBoundsException{
if (numItems>=LISTSIZE) {
//statment
throw new RuntimeException("List is full and you cannot add new item");
}else{
//shift element
if (posi>=1 and posi<=numItems+1) {
//backward
for (int i=numItems; i>=posi ; i-- ) {
items[i]=items[i-1];
}
items[posi-1]=newItem;
numItems++;
}else{
throws new IndexOutOfBoundsException("index of new item to be inserted out of bound")
}
}
}
}
Но вместо добавления по позиции я хочу добавить по значению. Например, когда вы вставляете элемент в отсортированный список, вы не указываете, где в списке этот элемент принадлежит. Вместо этого операция вставки определяет правильную позицию элемента, сравнивая его значение со значениями существующих элементов в списке. Номер тоже двойной! Есть ли у вас мысли по этому поводу? Спасибо
1 ответ
Что вы подразумеваете под вставкой по значению? Невозможно указать позицию, потому что список будет не отсортирован. Представьте, что вы пытаетесь вставить 3 во вторую позицию в этот список {1,2,4}, список будет {1,3,2,4}.