Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Структуры и алгоритмы обработки данных. Сортировка массивов и динамические структуры (90

.pdf
Скачиваний:
5
Добавлен:
15.11.2022
Размер:
676.59 Кб
Скачать

int 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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]