Введение 2
1 Постановка задачи 3
1.1 Назначение и функции программы 3
1.2 Список составляющих программы 3
1.3 Метод реализации основных функций программы 3
1.4 Описание алгоритмов программы 5
1.4.1 Создание дерева 5
1.4.2 Добавление элемента 5
1.4.3 Поиск элемента 6
1.4.4 Поиск минимального элемента 6
1.4.5 Поиск максимального элемента 6
1.4.6 Удаление элемента 6
2 Описание программы 8
2.1 Окна и формы программы 8
2.2 Справочная система 9
2.3 Графический дизайн 9
2.4 Описание функций программы 9
3 Описание использования программы 11
3.1 Порядок работы с программой 11
3.2 Установка программы 11
Заключение 12
Приложение А Блок-схемы программы 14
Приложение Б Основные формы программы 17
Приложение В Код программы 18
Приложение В Код программы (частично)
Unit GUITree
{
Визуализация основных функций над структурой данных "Бинарное дерево"
Автор: Гришкевич Александр, гр. 52491
}
unit GUITree;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.ExtCtrls, Vcl.Buttons,
Vcl.Menus, ShellAPI, BinaryTree;
type
TForm1 = class(TForm)
Image1: TImage;
MainMenu1: TMainMenu;
CreateFromFileDialog: TOpenDialog;
CheckBoxBySteps: TCheckBox;
MenuCreate: TMenuItem;
MenuCreateEmpty: TMenuItem;
MenuCreateRandom: TMenuItem;
MenuCreateFile: TMenuItem;
MenuInsert: TMenuItem;
InsertButton: TButton;
InsertStepButton: TButton;
InsertLabel: TLabel;
InsertEdit: TEdit;
MenuSearch: TMenuItem;
MenuSearchValue: TMenuItem;
MenuSearchMin: TMenuItem;
MenuSearchMax: TMenuItem;
SearchButton: TButton;
SearchStepButton: TButton;
SearchLabel: TLabel;
SearchEdit: TEdit;
MenuRemove: TMenuItem;
RemoveButton: TButton;
RemoveStepButton: TButton;
RemoveLabel: TLabel;
RemoveEdit: TEdit;
MenuHelp: TMenuItem;
MenuExit: TMenuItem;
procedure MenuCreateEmptyClick(Sender: TObject);
procedure MenuCreateRandomClick(Sender: TObject);
procedure MenuCreateFileClick(Sender: TObject);
procedure MenuInsertClick(Sender: TObject);
procedure InsertButtonClick(Sender: TObject);
procedure InsertStepButtonClick(Sender: TObject);
procedure MenuSearchValueClick(Sender: TObject);
procedure MenuSearchMinClick(Sender: TObject);
procedure MenuSearchMaxClick(Sender: TObject);
procedure SearchButtonClick(Sender: TObject);
procedure SearchStepButtonClick(Sender: TObject);
procedure MenuRemoveClick(Sender: TObject);
procedure RemoveButtonClick(Sender: TObject);
procedure RemoveStepButtonClick(Sender: TObject);
procedure MenuHelpClick(Sender: TObject);
procedure MenuExitClick(Sender: TObject);
private
procedure Interrupt;
procedure CleanSearchMode;
procedure CleanAddMode;
procedure CleanRemoveMode;
procedure DrawTree(Sender: TObject);
procedure DrawNodeContainingLeftChild(LeftIndent, TopIndent, DistanceBetweenNodes : Integer);
procedure DrawNodeContainingRightChild(LeftIndent, TopIndent, DistanceBetweenNodes : Integer);
procedure DrawNodeWithoutChildren(LeftIndent, TopIndent : Integer);
procedure SetColors(PenColor, BrushColor, FontColor : Integer);
procedure DrawText(LeftIndent, TopIndent, Key : Integer);
Основная
1) Бакнелл Дж. Фундаментальные алгоритмы и структуры данных в C++. Библиотека программиста. – М.: ООО «ДиаСофтЮП»; СПб Питер, 2006.
2) Вирт Н. Алгоритмы и структуры данных: Пер. с англ. – М.: Мир, 1980.
3) Двоичное дерево поиска – Википедия [Электронный ресурс] - ru.wikipedia.org/wiki/Двоичное_дерево_поиска - (дата обращения: 02.05.2017).
4) Бинарные деревья поиска и рекурсия – это легко [Электронный ресурс] - habrahabr.ru/post/267855/ - (дата обращения: 01.06.2017).
5) Алгориты и структуры данных для начинающий: двоичное дерево поиска [Электронный ресурс] - https://tproger.ru/translations/binary-search-tree-for-beginners/ - (дата обращения: 25.05.2017).
Дополнительная
1) Суворов К.А., Черемных М.Н. Справочник C++. Базовые классы. –СПб:БХВ-Петербург, 2004.
2) Дарахвелидзе П.Г., Марков Е.П. C++- среда визуального программирования: – СПб.:- Санкт –Петербург, 1996.
3) Бондарев В.М., Рублинецкий В.И., Качко Е.Г. Основы программирования. – Харьков: Фолио; Ростов н/Д:Феникс, 1997.
4) Фаронов В.В. C++ 6. Учебный курс.-М.: Издатель Молгачева С.В.,2001.
5) Киммел, Пол. Создание приложений в C++. – М.: Издательский дом ”Вильямс”, 2003.