- •Часть 1
- •Общие сведения Сведения об эумк
- •Методические рекомендации по изучению дисциплины
- •Рабочая учебная программа
- •Часть 2 184
- •Пояснительная записка
- •Содержание дисциплины
- •Индивидуальные практические работы, их характеристика
- •Контрольные работы, их характеристика
- •Литература
- •Основная
- •Дополнительная
- •Перечень компьютерных программ, наглядных и других пособий, методических указаний и материалов и технических средств обучения
- •Учебно-методические пособия
- •Алфавит языка
- •Лексемы
- •Идентификаторы
- •Ключевые слова
- •Знаки операций
- •Константы
- •Комментарии
- •Тема 2. Типы данных Концепция типа данных.
- •Простые типы данных
- •Целый тип int
- •Символьный тип char
- •Типы с плавающей точкой: float, double, long double
- •Тема 3. Выражения
- •Переменные
- •Именованные константы
- •Операции
- •Операции присваивания
- •Инкремент и декремент
- •Унарный плюс и унарный минус (строка 2)
- •Явное преобразование типа
- •Операция определения размера sizeof
- •Деление и остаток от деления
- •Логические операции не, и, или (!, &&, ||)
- •Условная операция (?:)
- •Операция запятая (,)
- •Операции взятия адреса и разадресации
- •Тема 4. Операторы
- •Структура программы
- •Тема 5. Базовые конструкции структурного программирования
- •Операторы ветвления
- •1. Условный оператор if
- •2. Оператор switch
- •Операторы цикла
- •1. Цикл с предусловием while
- •2. Цикл с постусловием do-while
- •3. Цикл с параметром for
- •Тема 6. Массивы
- •Тема 7. Указатели и массивы
- •Тема 8. Строки символов
- •Тема 9. Структуры
- •Массивы структур
- •Битовые поля
- •Объединения
- •Перечисления
- •Тема 10. Функции
- •Глобальные, локальные и статические переменные
- •Параметры функции
- •Передача массивов в качестве параметров функции
- •Функция main, ее параметры
- •Функции стандартной библиотеки
- •Функции форматного вывода и ввода printf и scanf
- •Тема 11. Файлы
- •Тема 12. Работа с динамической памятью
- •Тема 13. Динамические структуры данных
- •Очереди
- •Линейные списки
- •Бинарные деревья
- •Практический раздел Общие указания Указания по выбору варианта
- •Порядок оформление итогового отчета
- •Индивидуальные практические работы Индивидуальная практическая работа 1 Методические указания
- •Варианты заданий.
- •Индивидуальная практическая работа 2 Методические указания
- •Варианты заданий
- •Контрольные работы Контрольная работа 1 Методические указания
- •Варианты заданий
- •Контрольная работа 2 Методические указания
- •Варианты заданий
Бинарные деревья
Бинарное дерево - это динамическая структура данных, состоящая из узлов, каждый из которых содержит, кроме данных, ноль, одну или две ссылки на различные бинарные поддеревья. На каждый узел имеется ровно одна ссылка. Начальный узел называется корнем дерева. Узел, не имеющий поддеревьев, называется листом. Исходящие узлы называются предками, входящие - потомками. Высота дерева определяется количеством уровней, на которых располагаются его узлы.
Если дерево организовано таким образом, что для каждого узла все ключи его левого поддерева меньше ключа этого узла, а все ключи его правого поддерева - больше, оно называется деревом поиска (одинаковые ключи не допускаются). В дереве поиска можно найти элемент по ключу, двигаясь от корня и переходя на левое или правое поддерево в зависимости от значения ключа в каждом узле.
Дерево является рекурсивной структурой данных, поскольку каждое поддерево также является деревом.
Для бинарных деревьев определены следующие операции:
- формирования первого узла дерева;
- включения узла в дерево;
- поиска по дереву;
- обхода дерева;
- удаления узла.
Простейшее бинарное дерево, предназначенное для хранения и выборки целых чисел. Описание узла дерева выглядит следующим образом:
struct node
{
int data; //поле данных
node *left; //поле указателя на левого потомка
node *right; //поле указателя на правого потомка
};
Эффективная программная реализация бинарных деревьев основана на использовании рекурсивных алгоритмов и здесь не рассматривается.
Практический раздел Общие указания Указания по выбору варианта
Каждая из ИПР и КР содержит по 20 вариантов заданий. Выбор варианта, в соответствии с которым необходимо написать и отладить соответствующую программу на языке программирования С, выполняется следующим образом.
Если две последние цифры номера вашей зачетки образуют число N, не превышающее 20, то это число и будет номером вашего варианта. Если же число N будет больше двадцати, то необходимо из N последовательно вычитать число 20 до тех пор, пока полученный остаток не окажется меньшим или равным числу 20. Этот остаток и будет представлять собой ваш номер варианта, по которому нужно выполнить две ИПР и две КР.
Например, две последние цифры номера вашей зачетки представляют собой число N = 47. В этом случае N > 20 и, поэтому, придется дважды вычитать из числа N число 20 для получения остатка, не превосходящего число 20. Этим остатком будет число 7, которое и будет вашим номером варианта.
Порядок оформление итогового отчета
По результатам выполнения двух ИПР и двух КР в текстовом редакторе Word формируется итоговый отчет, который оформляется в соответствии с общеустановленными нормами и правилами, предъявляемыми к выполнению ИПР и КР.
Итоговый отчет помимо титульного листа и листа содержания должен включать в себя по каждой ИПР и каждой КР:
описание выполняемого задания (в соответствии с вариантом);
текст (листинг) разработанной программы;
скриншоты (копии консольных окон с экрана монитора), иллюстрирующие работу программы, после ее запуска;
выводы по работе.
В конце отчета приводится список используемой литературы.
Итоговый отчет присылается (по электронной почте) на проверку преподавателю. При отсутствии замечаний, или после успешного их устранения, студент получает допуск к сдаче экзамена.
На экзамене необходимо иметь при себе распечатанный вариант итогового отчета.