Массив ADT неопределенного определения об объекте, который хранит и который извлекает? - PullRequest
0 голосов
/ 17 марта 2020

В определениях массива ADT существует в литературе, нет четкого утверждения об этом:

Объект, который хранится в i-м индексе массива, ДОЛЖЕН иметь то же значение, когда i-й элемент извлекаться. (Если оно не изменилось между сохранением и извлечением).

Тогда в реализации массива ADT могут быть возможны разные значения, такие как arr.Store(i) = 1; и затем arr.Retrieve(i) != 1.

Итак, почему это важно? Например, отсортированный массив - это структура данных, используемая для хранения отсортированной последовательности элементов. Если отсортированный массив реализован с использованием простого массива, вот sudo-код:

class SortedArray
{
    private int *array;
    public void SortedArray(int size) {
        array = new int[size];
        for (int i=0; i<size; i++) array[i] = 0;
    }
    public int Retrieve(int index) {
        return array[index];
    }
    public int Store(int index, int value) {
        array[index] = value;
        sort(array);
    }
}

Четко вставленный элемент в индекс i не go остается на том же месте. Таким образом, вопрос:

Является ли условие (сохраненный элемент остается в указанном месте), не указано, потому что 1 - это СЛИШКОМ ясно или 2 - естественно и обычно это правда или 3 - это не требуется, или что-то еще?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...