
- •РАЗДЕЛ 7.
- •ПРОСТЫЕ ТИПЫ ДАННЫХ
- •Представление целых чисел
- •Представление отрицательных чисел
- •Представление вещественных чисел
- •СВЯЗНЫЕ СПИСКИ
- •Связные списки
- •Соглашения о первом элементе
- •Соглашения о ссылке последнего узла
- •Линейный односвязный список
- •Линейный односвязный список
- •Линейный односвязный список. Вставка в начало списка
- •Линейный односвязный список. Вставка в конец списка
- •Линейный односвязный список. Вставка в середину списка
- •Линейный односвязный список. Удаление из начала списка
- •Линейный односвязный список. Удаление с конца списка
- •Линейный односвязный список. Удаление из середины списка
- •Линейный двусвязный список
- •Линейный двусвязный список
- •Линейный двусвязный список. Вставка в начало списка
- •Линейный двусвязный список. Вставка в конец списка
- •Линейный двусвязный список. Вставка в середину списка
- •Линейный двусвязный список. Удаление из начала списка
- •Линейный двусвязный список. Удаление с конца списка
- •Линейный двусвязный список.
- •Циклический односвязный список
- •Циклический двусвязный список
- •Циклические списки. Операции вставки и удаления
- •АБСТРАКТНЫЕ ТИПЫ ДАННЫХ
- •Абстрактный тип данных
- •Абстрактный тип данных
- •Коллекции абстрактных объектов
- •Абстрактный тип данных «Стек»
- •Абстрактный тип данных «Очередь»
- •Абстрактный тип данных «Дек»

Линейный двусвязный список. Вставка в конец списка
С конечным фиктивным |
Без конечного |
узлом |
фиктивного узла |
Head |
|
|
|
|
|
* dummy * |
|
|
Head |
|
|
|
|
* dummy * |
|
|
|
|
|
|
|
|
|
* 1 * |
* |
0 |
* |
|
* 3 null |
|
|
|
* 1 * |
|
|
* |
2 * |
|
* |
2 |
|
|
|
|
* |
||
|
* |
dummy |
* |
|
|
|
|
|

Линейный двусвязный список. Вставка в середину списка
Head
* dummy * *
0
*
* |
1 |
* |
|
|
|
|
* |
2 |
* |
* dummy *

Линейный двусвязный список. Удаление из начала списка
С начальным фиктивным |
Без начального |
узлом |
фиктивного узла |
Head |
|
|
|
|
* dummy |
* |
|
|
|
|
* |
* |
|
|
|
|
* |
2 |
null |
* |
* |
|
|
|
Head |
|
|
|
null |
2 |
null |

Линейный двусвязный список. Удаление с конца списка
С конечным фиктивным |
Без конечного |
узлом |
фиктивного узла |
|
|
Head |
|
|
|
|
|
Head |
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
* |
|
dummy |
* |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
* dummy |
* |
|||||
|
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
* |
1 |
* |
|
|
|
|
null |
|
|
|
* |
* |
|
* |
1 |
|
|
|
|
|
|
|
|
|
||
|
|
|
* |
dummy |
* |
|
* |
null |

Линейный двусвязный список. |
|||
Удаление из середины списка |
|||
null 1 |
* |
|
|
|
* |
* |
|
|
|
* |
3 null |

Циклический односвязный список
Без фиктивного узла |
|
С фиктивным узлом |
||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
* |
|
|
|
|
|
|
|
|
|
|
dummy |
* |
|
|
|||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||
|
|
|
|
|
|
|
|
|
||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
* |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||
|
|
|
|
2 |
* |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2 |
* |
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3 |
* |
|
|
|
|
|
|
|
|
|
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3 |
* |
|||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|

Циклический двусвязный список
Без фиктивного узла С фиктивным узлом
Head |
|
|
|
|
|
|
* |
0 |
* |
|
|
|
|
|
|
* |
1 |
* |
|
|
|
|
|
|
* |
2 |
* |
Head |
|
|
|
|
|
|
* |
dummy |
* |
|
|
|
|
|
|
* |
1 |
* |
|
|
|
|
|
|
* |
2 |
* |

Циклические списки. Операции вставки и удаления
•Операции вставки и удаления в циклическом односвязном списке аналогичны операциям вставки и удаления в середину/ из середины линейного односвязного списка
•Операции вставки и удаления в циклическом двусвязном списке аналогичны операциям вставки и удаления в середину/ из середины линейного двусвязного списка

АБСТРАКТНЫЕ ТИПЫ ДАННЫХ
Стек, очередь, дек

Абстрактный тип данных
•Разработка абстрактных моделей для данных и способов обработки этих данных является важнейшим компонентом в процессе решения задач с помощью вычислительных машин
•Абстрактные типы данных позволяют отделять абстрактные (концептуальные) преобразования, которые программы выполняют над данными, от любого конкретного представления структуры данных и любой конкретной реализации алгоритма