Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Struktury_dannykh3.docx
Скачиваний:
1
Добавлен:
01.05.2025
Размер:
45.9 Кб
Скачать

Результаты выполнения работы по третьему варианту.

Добавляется еще один столбец, в котором будут соединены в одну цепочку все свободные ячейки.

Вначале все ячейки свободны, поэтому имеем следующую таблицу:

Адрес

Ключ

Адресная ссылка

Цепочка свободных ячеек

0

1

1

2

2

3

3

4

4

5

5

6

6

7

7

8

8

9

9

-1

Адрес первой свободной ячейки – 0.

После ввода ключей 11 и 21 имеем следующую таблицу:

Адрес

Ключ

Адресная ссылка

Цепочка свободных ячеек

0

21

-1

1

11

0

2

3

3

4

4

5

5

6

6

7

7

8

8

9

9

-1

Как мы видим, если необходима свободная ячейка, то перебор не требуется. Адрес первой свободной ячейки - адрес первой ячейки в цепочке. После этого первой свободной ячейкой становится следующая за ней и ее адрес запоминается.

После записи ключей 11 и 21 адрес первой свободной ячейки – 2.

После ввода ключа 26:

Адрес

Ключ

Адресная ссылка

Цепочка свободных ячеек

0

21

-1

1

11

0

2

3

3

4

4

5

5

7

6

26

-1

7

8

8

9

9

-1

Адрес первой свободной ячейки остается – 2.

После удаления ключа 11 имеем следующую таблицу:

Адрес

Ключ

Адресная ссылка

Цепочка свободных ячеек

0

2

1

21

-1

2

3

3

4

4

5

5

7

6

26

-1

7

8

8

9

9

-1

Адрес начала цепочки свободных ячеек – 0.

При удалении элемента его адрес становится адресом начала цепочки свободных ячеек.

Пусть необходимо записать в таблицу ключи 0, 21, 10, 12,13, 26.

Адрес

Ключ

Адресная ссылка

Цепочка свободных ячеек

0

0

2

1

21

-1

2

10

3

3

12

4

4

13

-1

5

7

6

26

-1

7

8

8

9

9

-1

Адрес начала цепочки свободных ячеек – 5.

Рассмотрим еще раз алгоритм удаления ключа из таблицы, если способ разрешения коллизии “срастающиеся цепочки”.

Необходимо удалить ключ 0. На его место должен встать ключ 10, так как он также как и ключ 0, должен располагаться по адресу 0. Далее необходимо удалить ключ 10. Он находится по адресу 2. В цепочке есть ключ, который должен занимать это место “по праву”. Это ключ 12. Он ставится на место ключа 10. Далее необходимо удалить ключ 12 на месте 3. В цепочке есть ключ, который должен занимать место 3 “по праву”. Это ключ 13. Он ставится на место ключа 12. Далее необходимо удалить ключ 13 на месте 4. В цепочке нет ключей, которые должны занимать место 4 “по праву”. Следовательно, ключ 13 на месте 4 просто удаляется. При этом его адресная ссылка записывается в адресную ссылку ключа 13 по адресу 3.

Получим следующую таблицу:

Адрес

Ключ

Адресная ссылка

Цепочка свободных ячеек

0

10

2

1

21

-1

2

12

3

3

13

-1

4

5

5

6

6

26

-1

7

7

8

8

9

9

-1

Адрес начала цепочки свободных ячеек – 4.

Если необходимо удалить ключ 12, то таблица будет иметь вид:

Адрес

Ключ

Адресная ссылка

Цепочка свободных ячеек

0

10

3

1

21

-1

2

4

3

13

-1

4

5

5

7

6

26

-1

7

8

8

9

9

-1

Адрес начала цепочки свободных ячеек – 2.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]