Как добавить элемент в список 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}.

Другие вопросы по тегам