LINUX.ORG.RU

История изменений

Исправление soomrack, (текущая версия) :

Нет, массив не является списком, его базовые операции не совпадают с базовыми операциями списка. Реализовать список на массиве можно, но в этом случае базовые операции списка будут выполняться медленно.

Одно из главных отличий массива от списка является то, что количество элементов в массиве фиксировано, а в списке оно может меняться. Среди базовых операций массива нет операций добавить/удалить элемент, нет операции изменить размер массива. Среди базовых операций списка есть операции вставить/удалить элемент после заданного.

Поэтому со списком можно работать как с динамической структурой: мы последовательно обрабатываем задания из списка и удаляем обработанные задания, чтобы получить следующее задание, мы пользуемся базовой операцией get_next(), при этом нас совершенно не волнует что происходит со списком после этих элементов – задания могут появляться, могут исчезать, и на скорость работы get_next() эти изменения не влияют. Это то, что программист ожидает, когда пишет for item in list(...).

С массивом так не получится – количество элементов фиксировано, мы можем менять их содержание, но не можем менять порядок и количество ячеек.

Исходная версия soomrack, :

Нет, массив не является списком, его базовые операции не совпадают с базовыми операциями списка. Реализовать список на массиве можно, но в этом случае базовые операции списка будут выполнятся медленно.

Одно из главных отличий массива от списка является то, что количество элементов в массиве фиксировано, а в списке оно может меняться. Среди базовых операций массива нет операций добавить/удалить элемент, нет операции изменить размер массива. Среди базовых операций списка есть операции вставить/удалить элемент после заданного.

Поэтому со списком можно работать как с динамической структурой: мы последовательно обрабатываем задания из списка и удаляем обработанные задания, чтобы получить следующее задание, мы пользуемся базовой операцией get_next(), при этом нас совершенно не волнует что происходит со списком после этих элементов – задания могут появляться, могут исчезать, и на скорость работы get_next() эти изменения не влияют. Это то, что программист ожидает, когда пишет for item in list(...).

С массивом так не получится – количество элементов фиксировано, мы можем менять их содержание, но не можем менять порядок и количество ячеек.