- •1.Классификация структур данных
- •2.Операции над структурами
- •3. Структурность данных и технологии программирования
- •4. Целочисленные типы
- •5. Вещественные типы
- •6. Битовые типы
- •7. Логический тип
- •8. Символьный тип
- •9. Перечислимый тип
- •10. Интервальный тип
- •11. Указатели
- •12. Массивы
- •13. Свободные массивы
- •14. Треугольные и разреженные матрицы
- •15. Множества
- •16. Записи
- •17. Абстрактный тип данных «Список»
- •18. Методы реализации списков
- •19. Двунаправленные списки
- •20. Абстрактный тип данных «Стек»
- •21. Методы реализации стеков
- •22. Применение стеков при разработке приложений
- •23. Абстрактный тип данных «Очередь»
- •24. Методы реализации очередей
- •25. Абстрактный тип данных «Дек». Методы реализации
- •26. Строки: логическая структура, операции и представление в памяти
- •27. Деревья. Их обходы
- •28. Помеченные деревья и деревья выражений
- •29. Абстрактный тип данных «Дерево»
- •30. Методы реализации деревьев
- •31. Двоичные деревья. Методы их представления
- •32. Коды Хаффмана
- •33. Абстрактный тип данных «Множество»
- •34. Абстрактный тип данных с операторами множеств
- •35. Методы реализации абстрактного типа данных «Множество»
- •36. Словари. Методы их реализации
- •37. Структуры данных основанные на хеш-таблицах
- •38. Оценка эффективности хеш-функций
- •39. Очереди с приоритетами. Методы их реализации
- •40. Реализация очереди с приоритетами частично упорядоченными деревьями
- •41. Деревья двоичного поиска. Методы их реализации
- •42. Нагруженные деревья. Методы их реализации
- •43. Реализация множеств посредством сбалансированных 2-3 деревьев
- •45. Задача наибольшей общей подпоследовательности
- •44. Множества с операторами merge и find. Методы их реализации
- •46. Сбалансированные и несбалансированные деревья поиска
- •48. Методы представления графов
- •49. Внешняя сортировка. Основные характеристики сортировок методом слияний
- •50. Алгоритм прямого слияния
- •51. Алгоритм естественного слияния
- •52. Сбалансированное многопутевое слияние
- •53. Многофазная сортировка
- •54. Хранение данных в файлах
- •55. Внешние деревья поиска
4. Целочисленные типы
Этот тип включает некоторое подмножество целых, размер которого варьируется от машины к машине. Если для представления целых чисел в машине используется n разрядов, причем используется дополнительный код, то допустимые числа должны удовлетворять условию -2n-1<= x< 2n-1.
Числа делятся на знаковые и беззнаковые. Для каждого из них имеется свой диапазон значений:
a)(0..2n-1) для беззнаковых чисел
b) (-2n-1.. 2n-1-1) для знаковых.
Операции над целым типом:
a) +, -, *.
d) Целочисленное деление.
e) Нахождение остатка по модулю.
f) Нахождение экстремума числа.
g) операции сравнения.
Во всех операциях, кроме сравнения, в результате получается целое число.
5. Вещественные типы
В отличии от порядковых типов (все целые, символьный, логический), значения которых всегда сопоставляются с рядом целых чисел и, следовательно, представляются в памяти машины абсолютно точно, значение вещественных типов определяет число лишь с некоторой конечной точностью, зависящей от внутреннего формата вещественного числа.
Для получения большей точности применяют запись чисел с плавающей точкой.
Формат для представления чисел с плавающей точкой содержит одно или два поля фиксированной длины для знаков.
Однако, чаще вместо порядка используется характеристика, получающаяся прибавлением к порядку такого смещения, чтобы характеристика была всегда положительной.
Х = 2n-1 + k + p,
n - число бит, отведенных для характеристики,
p - порядок числа,
k - поправочный коэффициент фирмы IBM, равный +1 для real и -1 для форматов single, double, extended.
6. Битовые типы
Данные такого типа представляются в виде набора битов, упакованных в байты или слова, и не связанных друг с другом.
Операции над такими данными обеспечивают доступ к выбранному биту данного.
В языке PASCAL роль битовых типов выполняют беззнаковые целые типы byte и word. Над этими типами помимо операций, характерных для числовых типов, допускаются и побитовые операции. Аналогичным образом роль битовых типов играют беззнаковые целые и в языке C.
Возможны три группы специфических операций:
операции булевой алгебры,
операции сдвигов,
операции сравнения.
Операции булевой алгебры:
НЕ (not), ИЛИ (or), И (and), исключающее ИЛИ (xor).
Операции сдвигов
Выполняют смещение двоичного кода на заданное количество разрядов влево или вправо.
Из трех возможных типов сдвига (арифметический, логический, циклический) в языках программирования обычно реализуется только логический (например, операциями shr, shl в PASCAL).
Операции сравнения
Битовые данные интерпретируются как целые без знака, и сравнение выполняется как сравнение целых чисел.
7. Логический тип
Значениями логического типа BOOLEAN может быть одна из предварительно объявленных констант:
false (ложь) true (истина).
Данные логического типа занимают один байт памяти. При этом значению false соответствует нулевое значение байта, а значению true соответствует любое ненулевое значение байта.
В языке C данные логического типа отсутствуют, их функции выполняют данные числовых типов, чаще всего - типа int.
В логических выражениях операнд любого числового типа, имеющий нулевое значение, рассматривается как "ложь", а ненулевое - как "истина".
Результатами логического типа являются целые числа 0 (ложь) или 1 (истина).
