
- •Структуры и алгоритмы обработки данных
- •Часть 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. Информационное поле содержит ключ, идентифицирующий элемент списка, и, возможно, другую информацию.
Двунаправленный список – динамическая структура данных вида:
Каждый элемент включает в себя информационное поле, ссылку на следующий элемент и ссылку на предыдущий элемент.
Характеристика:
Ø.