
Структуры и алгоритмы обработки данных. Сортировка массивов и динамические структуры (90
.pdfint main()
{ int s, num, i, k, j; //объявляем переменные
int a[] = {8,4,12,2,6,1,3,5,7,10,14,9,11,13,15}; //массив демонстрации дерева setlocale(LC_ALL, "rus"); //включение поддержки русского языка do //цикл меню
{
printf("###### МЕНЮ ###### \n"); printf("\n");
printf("1.Добавить элемент \n"); printf("2.Просмотр дерева \n"); printf("3.Очистить дерево \n"); printf("4.Просмотр дерева - обратный обход \n"); printf("5.Полная генерация дерева \n"); printf("6.Удаление элемента \n");
printf("7.Демо - дерево \n"); printf("0.Выход \n"); printf("\n");
printf("Выбранное действие: "); scanf_s("%d", &s); //ввод номера из меню switch (s) //выбор меню
{
case 1:
printf("\nВведите элемент: ");
scanf_s("%d", &num); //ввод элемента для добавления Add(&root, num); //переходим на функцию добавления printf("\nЭлемент добавлен \n\n"); printf("*********************** \n\n");
break;
case 2:
if (root!=NULL) //если дерево имеет элементы
{
printf("\n");
Show(root, 0); //переходим к функции отображения
}
else //если нет, то printf("\nДерево пустое \n\n");
printf("*********************** \n\n"); break;
case 3:
Clear(&root); //переходим на функцию полной очистки printf("\nДерево очищено \n\n"); printf("*********************** \n\n");
break;
33
case 4:
if (root!=NULL) //если дерево имеет элементы
{ printf("\n\n");
postorder(root); //переходим на функцию обратного об-
хода
printf("\n\n"); }
else
printf("\nДерево пустое \n\n"); printf("*********************** \n\n"); break;
case 5:
printf("\nВведите количество элементов: ");
scanf_s("%d", &k); //вводим количество элементов дерева for (i=0; i<k; i++) //цикл случайного заполнения дерева
{
num = rand() % 100 + 1;
Add(&root, num); //переходим на функцию добавления
}
printf("\nЭлементы добавлены \n\n"); printf("*********************** \n\n"); break;
case 6:
if (root!=NULL) //если дерево имеет элементы
{
printf("\nУдаляемый элемент: ");
scanf_s("%d", &num); //вводим элемент для удаления if (Delete(&root, num)==1) //переходим на функцию удаления
{ // если единица, то элемент удален printf("\nЭлемент удален \n\n"); printf("*********************** \n\n");
}
else //а если ноль, то элемент не найден
{ printf("\nЭлемент не найден \n\n"); printf("*********************** \n\n"); }}
else //если дерево не имеет элементы
{ printf("\nДерево пустое \n\n"); printf("*********************** \n\n"); }
break; case 7:
printf("\nВведите элемент: ");
for (j=0; j<15; j=j+1) //цикл заполнения дерева из массива
{ num=a[j];
Add(&root, num); //переходим на функцию добавления
}
34
printf("\n\nЭлементы добавлены \n\n"); printf("*********************** \n\n"); break;
case 0:
exit(1); //функция выхода из программы default:
printf("\n\n"); printf("******************************** \n"); printf("* Произошла ошибка! * \n"); printf("******************************** \n\n"); break;
}}
while (s!=0); //цикл меню
_getch(); //функция удержания окна консоли
}
35
Библиографический список
1.Батищев, Р.В. Структуры и алгоритмы обработки данных. Ч.1: [Текст] учеб.
пос. / Р.В. Батищев. - Липецк: Изд-во Липецкого государственного техниче-
ского университета, 2014. - 86 с.
2.Батищев, Р.В. Структуры и алгоритмы обработки данных. Ч2: [Текст] учеб.
пос. / Р.В. Батищев. - Липецк: Изд-во Липецкого государственного техниче-
ского университета, 2015. - 88 с.
3.Свободная энциклопедия Википедия [Электронный ресурс]. - Режим досту-
па: www.URL: https://ru.wikipedia.org/
4.Кнут, Д.Э. Искусство программирования [Текст], в 4 т. Т 1. Основные алго-
ритмы / Д.Э. Кнут. - Москва: Вильямс, 2006. - 720 с.
5.Кнут, Д.Э. Искусство программирования [Текст], в 4 т. Т 3. Сортировка и поиск / Д.Э. Кнут. - Москва: Вильямс, 2007. - 824 с.
36
Структуры и алгоритмы обработки данных Сортировка массивов и динамические структуры
Методические указания для студентов к лабораторным работам по курсу
«Структуры и алгоритмы обработки данных»
|
Батищев Роман Вячеславович |
|
|
Редактор: Черникова Е.Н. |
|
Подписано в печать |
Формат 60х84 1/16. Бумага офсетная. Ризография. |
|
|
Печ.л. 2. Тираж 50 экз. Заказ N |
. |
Липецкий государственный технический университет.
Полиграфическое подразделение Издательства ЛГТУ
398600, Липецк, ул. Московская, 30.
37