Сравнивайте с английским: нажмите на абзац — оригинал откроется в окне. Кнопка EN под абзацем показывает его прямо в тексте.
Введение
Список – структура данных, в которую можно добавлять и удалять элементы.
List data structure to which elements can be added/removed
В информатике динамический массив, расширяемый массив, массив с изменяемым размером, динамическая таблица, изменяемый массив или список массивов – это структура данных списка с произвольным доступом и переменным размером, позволяющая добавлять или удалять элементы. Он входит в состав стандартных библиотек многих современных основных языков программирования. Динамические массивы устраняют ограничение статических массивов, которые имеют фиксированную ёмкость, которую необходимо указывать при выделении памяти. Динамический массив отличается от динамически выделенного массива или массива переменной длины, размер которых фиксирован во время выделения памяти, хотя динамический массив может использовать такой массив фиксированного размера в качестве внутренней реализации.
In computer science, a dynamic array, growable array, resizable array, dynamic table, mutable array, or array list is a random access, variable size list data structure that allows elements to be added or removed. It is supplied with standard libraries in many modern mainstream programming languages. Dynamic arrays overcome a limit of static arrays, which have a fixed capacity that needs to be specified at allocation. A dynamic array is not the same thing as a dynamically allocated array or variable length array, either of which is an array whose size is fixed when the array is allocated, although a dynamic array may use such a fixed size array as a back end.
Языковая поддержка
C++ std::vector и Rust std::vec::Vec являются реализациями динамических массивов, как и классы ArrayList, поставляемые с API Java и .NET Framework. Общий класс List<>, поставляемый с версией 2.0 .NET Framework, также реализован на основе динамических массивов. OrderedCollection в Smalltalk – это динамический массив с динамическим начальным и конечным индексом, что обеспечивает удаление первого элемента за O(1). Реализация типа данных списка в Python представляет собой динамический массив с законом роста: 0, 4, 8, 16, 24, 32, 40, 52, 64, 76. Delphi и D реализуют динамические массивы непосредственно в ядре языка. В Ada пакет Ada.Containers.Vectors предоставляет реализацию динамического массива для заданного подтипа. Многие скриптовые языки, такие как Perl и Ruby, предлагают динамические массивы как встроенный примитивный тип данных. Ряд кроссплатформенных фреймворков предоставляют реализации динамических массивов для C, включая CFArray и CFMutableArray в Core Foundation, а также GArray и GPtrArray в GLib. Common Lisp обеспечивает базовую поддержку векторов изменяемого размера, позволяя настроить встроенный тип массива как изменяемый и использовать указатель заполнения для определения места вставки.
C++'s std::vector and Rust's std::vec::Vec are implementations of dynamic arrays, as are the ArrayList classes supplied with the Java API and the NET Framework. The generic List<> class supplied with version 2.0 of the NET Framework is also implemented with dynamic arrays. Smalltalk's OrderedCollection is a dynamic array with dynamic start and end index, making the removal of the first element also O(1). Python's list datatype implementation is a dynamic array the growth pattern of which is: 0, 4, 8, 16, 24, 32, 40, 52, 64, 76,
Delphi and D implement dynamic arrays at the language's core. Ada's Ada. Containers. Vectors generic package provides dynamic array implementation for a given subtype. Many scripting languages such as Perl and Ruby offer dynamic arrays as a built in primitive data type. Several cross platform frameworks provide dynamic array implementations for C, including CFArray and CFMutableArray in Core Foundation, and GArray and GPtrArray in GLib. Common Lisp provides a rudimentary support for resizable vectors by allowing to configure the built in array type as adjustable and the location of insertion by the fill pointer.