Программирование нелинейных динамических структур на языке С

Представить таблицу в виде бинарного дерева, элементами которого являются строки таблицы.

Таблица 2 – Список студентов

Фамилия

студента

Оценки

Физика История Математика
         

Написать программу, содержащую следующие функции:

– создание дерева (ввод данных с клавиатуры);

– просмотр дерева (вывод данных в табличном виде);

– отображение дерева (вывод структуры дерева);

– добавление нового элемента в дерево;

– сохранение данных в файл;

– загрузка данных из файла и создание бинарного дерева на их основе;

– удаление всех элементов дерева (!!!).

Оформить работу программы в виде меню. Каждый пункт меню отвечает одной из функций, перечисленных выше. Дополнить свою работу функцией по варианту задания. Предусмотреть все проверки!

Вариант 1

Написать функцию подсчета узлов дерева (вершина, у которой есть дочерние элементы).

Вариант 2

Написать функцию подсчета листьев дерева (вершина, у которой нет дочерних элементов).

Вариант 3

Написать функцию подсчета вершин, у которых есть только один потомок.

Вариант 4

Написать функцию подсчета количества отличников.

Вариант 5

Написать функцию поиска студента Иванова в дереве. Если такого студента нет – вывести сообщение.

Вариант 6

Написать функцию подсчета количества студентов с оценкой 3 по физике.

Вариант 7

Написать функцию подсчета количества элементов на заданном уровне.

Вариант 8

Написать функцию, определяющую дисциплину с максимальным количеством оценок 5.

Вариант 9

Написать функцию, которая ищет студента с максимальным средним баллом.

Вариант 10

Написать функцию, которая считает количество переходов от корневой вершины до вершины со введенной фамилией.



Реализация динамического интерфейса

Для заданий №4 и №5 необходимо модифицировать программу таким образом, чтобы интерфейс программы стал интерактивным, т.е. необходимый пункт меню выбирался с помощью управляющих клавиш (стрелочки) и запускался на выполнение нажатием клавиши Enter. Текущий пункт меню можно выделять подсветкой цветом или с помощью некоего «курсора» – вспомогательного символа, служащего для этой цели (например, символ * или =>).

Подсказка: реализация через бесконечный цикл, использовать функцию getch(), код символов в таблице ниже.

Таблица 3 – Код клавиш

клавиша Код
Enter 13
Escape 27
Стрелочка вверх 72
Стрелочка вниз 80
Стрелочка вправо 77
Стрелочка влево 75

 


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: