Автор: Пользователь скрыл имя, 26 Декабря 2010 в 19:45, курсовая работа
Целью создания проекта является программная реализация демонстрационной программы, работающей с бинарными деревьями.
Система имеет удобный графический интерфейс, предназначенный для теоретической справки и демонстрации работы с бинарными деревьями.
Данный программный продукт может использоваться в обучающих целях и при решении задач, связанных с использованием бинарных деревьев, где каждый узел представляет ситуацию, имеющую возможные исходы.
Введение……………………………………………………………………6
1 Теоретические данные…………………………………………………...7
2 Постановка задачи……………………………………………………….11
2.1 Общая постановка задачи……………………….…………………..11
2.2 Схема информационных потоков…………………………………..11
3 Описание входных и выходных структур данных…………………….12
3.1 Входные данные……………………………………………………...12
3.2 Выходные данные …………………………………………………...12
4 Описание и обоснование выбора метода решения и алгоритмы……..13
4.1 Обоснование выбора языка программирования…………………...13
4.2 Структура для узла в языке С……………………………………….13
4.3 Структура в языке С для дерева…………………………………….13
4.4 Создание БД………………………………………………………….14
4.5 Поиск………………………………………………………………….14
4.6 Вставка………………………………………………………………..15
4.7 Удаление……………………………………………………………...16
4.8 Упорядоченное рекурсивное прохождение………………………...19
5 Описание программной реализации……………………………………..21
5.1 Функциональная схема программы………………………………....21
5.2 Комплект поставки и порядок инсталляции………………………..21
6 Анализ эффективности реализуемого метода……………………….….22
6.1 Общая оценка поиска в двоичном дереве…………………………..22
7 Анализ результата………………………………………………………..23
8 Минимальные требования программы…………………………………27
Выводы……………………………………………………………………..28
Список литературы……………………….……………………………….29
Приложение A Техническое задание……………….....………………....30
Приложение Б Руководство пользователя.……..…...…………………..33
Приложение В Экранные формы..………………………....…………….34
Приложение Г Листинг программы……………………………………...35
)
{ // start_add_char
p++;
s[p-1]=ch;
s[p]=0;
setcolor(26);
c[0]=ch;
c[1]=0;
writexy(x,y,c);
x+=clen(ch)+1;
} // end_add_char
switch (ch)
{
case 27 : // Cancel
{
s[0]=0;
return 0;
}
case 13 : // OK
{
return 1;
}
case 8 : // BS
if (p>0)
{
x-=clen(s[p-1])+1;
bar(x,y,x+clen(s[p-1])+1,y+10)
p--;
s[p]=0;
break;
}
} // switch_/non-special/
} // end_/non-special/
}// end_if_kbhit()
delay(1);
}
while (1);
}// end_proc
/// //// ///
/// MAIN ///
/// //// ///
int main()
{
char sedrik,simba;
char str[4];
struct bin_tree *tree;
int i,//what I'm inserting
result;
fp=-100;
svgamode(3);
Back();
clear();
bar_(100,200,700,500);
help();
getch();if(kbhit())getch();
clear();
tree = bin_create();
do{
flag = 0;
sedrik=getch();
switch(sedrik)
{
case 0: sedrik=getch();
switch(sedrik)
{
case 60: //HELP ABOUT BINARY TREES
{
clear();
showbmp16x(65,170,"c:\\1help.
getch();if(kbhit())getch();
clear();
showbmp16x(70,170,"c:\\2help.
getch();if(kbhit())getch();
clear();
bin_walk(tree);
break;
}
case 61: //About F3
{
clear();
bar_(200,300,600,500);
about();
getch();if(kbhit())getch();
clear();
bin_walk(tree);
break;
}
case 59: //Help
{
clear();
bar_(100,200,700,500);
help();
getch();if(kbhit())getch();
clear();
bin_walk(tree);
break;
}
case 68: //Exit
{
bin_destroy(tree);
return EXIT_SUCCESS;
}
case 83: //Del
{
setfillstyle(1,27);
bar_(250,320,550,380);
setcolor(26);
outtextxy(270,350,"Что удалить:");
re(375,345,str,2,20);
i=atoi(str);
if(bin_search(tree,i) == 0)
{
clear();
setcolor(18);
outtextxy(320,350,"В удалении
getch();if(kbhit())getch();
clear();
bin_walk(tree);
break;
}
setfillstyle(1,28);
bar(250,320,550,380);
if (bin_delete(tree, i) == 0)
{
setcolor(18);
outtextxy(270,350,"Ошибка
getch();if(kbhit())getch();
exit(EXIT_FAILURE);
}
clear();
bin_walk(tree);
break;
}
case 65: //Search
{
flag = 1;
setfillstyle(1,27);
bar_(250,320,550,380);
setcolor(26);
outtextxy(270,350,"Что искать:");
re(370,345,str,2,20);
i=atoi(str);
setfillstyle(1,28);
bar(250,320,550,380);
if(bin_search(tree,i)==0)
{
setcolor(18);
outtextxy(320,350,"Элемент не
getch();if(kbhit())getch();
clear();
bin_walk(tree);
}
else
{
setcolor(17);
outtextxy(330,350,"Элемент найден.");
getch();if(kbhit())getch();
clear();
bin_walk(tree);
}
break;
}
case 82: //Ins
{
setfillstyle(1,27);
bar_(250,320,550,380);
setcolor(26);
outtextxy(270,350,"Введите элемент:");
re(405,345,str,2,20);
i=atoi(str);
if(bin_search(tree,i) == 1)
{
flag=0;
clear();
setcolor(18);
outtextxy(320,350,"В
getch();if(kbhit())getch();
clear();
bin_walk(tree);
break;
}
clear();
result = bin_insert(tree, i);
if (result != 1)
{
setcolor(18);
outtextxy(270,350,"Error inserting element into tree.");
getch();if(kbhit())getch();
exit(EXIT_FAILURE);
}
bin_walk(tree);
break;
}
}
}
}while(1==1);
}
Информация о работе Работа с двоичными деревьями: построение, поиск, удаление, включение и обход