
- •Результаты выполнения лабораторной работы по второму варианту.
- •Результаты выполнения работы по третьему варианту.
- •Результаты выполнения работы по четвертому варианту.
- •Результаты выполнения работы по пятому варианту:
- •Результаты выполнения работы по седьмому варианту.
- •III. Лабораторная работа 3. Инвертированные списки.
- •Меню для лабораторной работы 3 будет следующим:
Результаты выполнения работы по четвертому варианту.
Для ключа вычисляется адрес, который он должен занимать “по праву”. Если по этому адресу уже находится ключ, и он также занимает место “по праву”, то свободная ячейка ищется для нового ключа. Если по адресу находится ключ, занимающий это место не “по праву”, то свободное место ищется для него.
Пусть приходят ключи 11,21. Таблица должна иметь вид:
-
Адрес
Ключ
Адресная ссылка
0
1
11
2
2
21
-1
3
4
5
6
7
8
9
Приходит ключ 22:
-
Адрес
Ключ
Адресная ссылка
0
1
11
3
2
22
-1
3
21
-1
4
5
6
7
8
9
Приходит ключ 23, а потом ключи 5,25, 15.
-
Адрес
Ключ
Адресная ссылка
0
1
11
4
2
22
-1
3
23
-1
4
21
-1
5
5
6
6
25
7
7
15
-1
8
9
Удаление ключа производится по следующему алгоритму. Если удаляется первый элемент в цепочке, то, чтобы не потерять всю цепочку, на его место переписывается следующий за ним в цепочке ключ, вместе с его адресной ссылкой. Сам этот ключ удаляется. Если удаляется не первый ключ в цепочке, то его адресная ссылка записывается в адресную ссылку предыдущего ключа в цепочке, а место, которое занимал ключ, освобождается.
Пусть необходимо удалить ключи 11 и 25. Получим таблицу:
-
Адрес
Ключ
Адресная ссылка
0
1
21
-1
2
22
-1
3
23
-1
4
5
5
7
6
7
15
-1
8
9