Список переменного размера

С помощью динамических массивов вы можете построить простой список переменного размера. Новый элемент в список добавляется следующим образом. Создайте новый массив, который на один элемент больше старого. Скопируйте элементы старого массива в новый и добавьте новый элемент. Затем освободите старый массив и установите указатель массива на новую страничку памяти.

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

var 
List : PIntArray; // Массив. 
Numltems : Integer; // Количество используемых элементов. 
procedure Addltem(new_item : Integer); 
var 
new_array : PIntArray; 
i : Integer; 
begin 
// Создание нового массива. 
GetMem(new_array,(Numltems+l)*SizeOf(Integer)); 
// Копирование элементов в новый массив. 
for i := 1 to Numltems do 
new_arrayA [ i] : = List*[i]; 
// Сохранение нового элемента. 
new_array [Numltems+l] := new_item; 
// Освобождение ранее выделенной памяти. 
if (NumItems>0) then FreeMem(List); 
// Установка указателя на новый массив. 
List := new_array; 
// Обновление размера. 
Numltems := Numltems+l; 
end; 
Онлайн всего: 52
Гостей: 52
Пользователей: 0

STUDLAB Сообщить про опечатку на сайте