Структура памяти
Структура данных
К
- множество именА
- множество адресовf:К->А
Возможные задания f
(возможный способ - табличное задание функции):
Операции под таблицей:
Таблица - динамическая структура данных.
Базисное множество - семейство линейных структур из записей, базисное отношение включения определяется операциями вставки и удаления записей.
Варианты расширения понятия таблицы:
Принцип реализации таблиц:
Введение различных способов предполагает явное или неявное существование разных типов ситуаций при использовании таблиц.
По организации способа доступа таблицы делятся на следующие категории:
Порядок расположения элементов никак не связан со значениями ключей. Поэтому поиск элемента по ключу осуществляется обычным просмотром всех элементов таблицы, начиная с первого и до искомого
Ключ | Информация |
---|---|
08 | ... |
33 | ... |
47 | ... |
25 | ... |
18 | ... |
Таким образом, при удалении элемента надо:
Поскольку операция поиска возвращает искомый элемент и не сообщает о месте его размещения в списке, при реализации операции удаления элемента из списка приходится либо
Алгоритм удаления элемента из просматриваемой таблицы-списка по варианту a) приведен на рисунке.
Текст программы, соответствующий приведенному алгоритму
struct Item
{
int key;
Type info;
Item *next;
};
Item *ptab; /*указатель на начало таблицы */
int del1(int k)
{
Item *cur, *prev;
cur = ptab;
/*проверяем, есть ли в таблице элементы */
if(!cur)
return -1; /*таблица пуста – отказ */
/*возможно, требуется удалить первый элемент таблицы */
if(cur->key == k)
{
/* удаляем первый элемент */
ptab = cur->next;
delInfo(cur->info);
delete cur;
return 0;
}
/* ищем удаляемый элемент среди других элементов таблицы */
while(cur->next)
{
/* есть другие элементы */
prev = cur;
cur = cur->next;
if(cur->key == k)
{
/* нашли элемент, который надо удалить */
prev->next = cur->next;
delInfo(cur->info);
delete cur;
return 0;
}
}
/* естественный выход из цикла – в таблице нет элемента с ключом k */
return -1;
}
Формирование гипотез происходит в результате теоретического анализа модели решаемой задачи или может быть выполнено на основе статистических данных, получаемых в ходе вычислительных экспериментов с проектируемой программной системой.
Гипотеза 1: Стеки используются с одинаковой интенсивностью, память разделяется между стеками поровну.
Гипотеза 2: Интенсивность использования стеков различается.
Сохранение локальных тенденций роста:
правило распределение памяти для стеков в соответствии с их показателями роста
Гипотеза 3: Использование вероятностных предположений о поведении стеков.