- •Структуры и алгоритмы обработки данных
- •Часть 1
- •Последовательное представление линейных списков
- •Связанное представление линейных списков
- •Очередь
- •Связанное представление матриц
- •Бинарное дерево поиска. Построение и поиск элемента
- •Бинарное дерево поиска. Удаление элемента
- •Линейные списки с индексами. Построение и поиск элемента. Способы коррекции
- •Инвертированные списки
- •Построение словаря с использованием деревьев
- •Построение словаря с использованием матриц
Структуры и алгоритмы обработки данных
курс лекций для студентов II курса
специальности
Программное Обеспечение
Вычислительной Техники и Автоматизированных Систем
Часть 1
МИИТ, 2006 год
Содержание.
Последовательное представление линейных списков |
3 |
Связанное представление линейных списков |
4 |
Очередь |
5 |
Стек |
6 |
Связанное представление матриц |
7 – 8 |
Бинарное дерево поиска. Построение и поиск элемента |
9 – 10 |
Бинарное дерево поиска. Удаление элемента |
11 – 12 |
АВЛ – дерево. Построение и поиск элемента |
13 |
АВЛ – дерево. Удаление элемента |
14 |
В – дерево. Построение и поиск элемента |
15 |
В – дерево. Удаление элемента |
16 – 17 |
Линейные списки с индексами. Построение и поиск элемента. Коррекция |
18 |
Инвертированные списки |
19 |
Построение словаря с использованием деревьев |
20 – 21 |
Построение словаря с использованием матриц |
22 |
Хеш – таблицы. Функции расстановки |
23 |
Хеш – таблицы. Способы разрешения коллизий |
24 |
Последовательное представление линейных списков
Последовательные линейные списки – это просто одномерные или двумерные массивы. Например: задан массив A из N чисел.
10 |
2 |
… |
100 |
N
Единственное достоинство такой структуры данных – это то, что, когда известен номер элемента, легко вычислить его адрес по формуле: , где - количество байт, занимаемых одним элементом.
Для оценки структуры данных существуют количественные показатели:
1. - среднее количество сравнений при поиске элементов среди множества из N элементов.
2. - количество сравнений при поиске элемента, если его нет во множестве.
3. - среднее количество перемещений элементов при вставке и удалении элементов.
Рассмотрим данные характеристики применительно к последовательным линейным спискам:
; ; Ø; - самые плохие характеристики.
Последовательный линейный список имеет смысл употреблять, когда он упорядочен по возрастанию или убыванию. Здесь потребуется дополнительная работа по сортировке и применению алгоритма поиска. Но в данном случае характеристики значительно улучшатся:
; - самые лучшие; .
Связанное представление линейных списков
Связанные линейные списки – это списки, в которых элементы располагаются не подряд.
x4 |
|
|
|
x2 |
|
|
|
x1 |
|
|
|
x3 |
|
Однонаправленный список – динамическая структура данных вида:
Каждый элемент содержит информационное поле и указатель на следующий элемент. Поле ссылки последнего элемента имеет NIL. Информационное поле содержит ключ, идентифицирующий элемент списка, и, возможно, другую информацию.
Двунаправленный список – динамическая структура данных вида:
Каждый элемент включает в себя информационное поле, ссылку на следующий элемент и ссылку на предыдущий элемент.
Характеристика: Ø.