Re: Реализация связанных списков на базе массивов
От: Stanky  
Дата: 17.04.05 21:38
Оценка: +1
Непосредственно в реализации автора лучше изменить несколько пунктов:
1) Вместо индексов лучше использовать смещение (в байтах) в массиве — это даст единую реализацию для пулов с любым размером элементов!!! Причём использовать необходимо именно смещения, а не адреса — это даст позиционную независимость: например при отсутствии свободных элементов в пуле нам прийдётся сделать ReAlloc и возможно массив будет перенесён в памяти в другое место — смещения относительно начала (как и индексы) будут к этому нечувствительны!!!
2) Поменять местами первые два элемента — указатель (значение в NullFreeSpace) будет ненулевой, если есть место в пуле, а если нет, то нулевой!!!
3) Хранить данные и смещения в одном массиве — это даст некоторое упрощение и экономию памяти!!!
4) И несколько спорное предложение — увеличивать пул не в 2 раза, а на некоторое минимальное значение (гранулярность), например добавлять 16 свободных элементов!!!
Posted via RSDN NNTP Server 1.9
Не бойся выглядеть глупо, от этого ты выглядишь ещё глупей!!!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.