Студопедия

Главная страница Случайная страница

КАТЕГОРИИ:

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Функция освобождения памяти, занятой деревом






void Del_Tree(Tree *t) {

if (t! = NULL) {

Del_Tree (t -> left); // На левую ветвь

Del_Tree (t -> right); // На правую ветвь

delete t;

}

}

 

Пример выполнения задания

В качестве примера рассмотрим проект (для последовательно введенных ключей 10 (корень), 25, 20, 6, 21, 8, 1, 30), который создает дерево, отображает его в Memo, удаляет элемент по ключу и удаляет дерево. Панель диалога будет иметь вид, представленный на рис. 6.2.

Как и в предыдущих примерах, приведем только тексты функций-обработчиков соответствующих кнопок, а тексты функций пользователя рассмотрены выше:

 

Рис. 6.2

 

//--------------------- Шаблон структуры ----------------------------------------------

struct Tree {

int info;

Tree *left, *right;

}*root; // Корень

//----------------- Декларации прототипов функций работы с деревом ----------------

void Add_List(Tree*, int);

void View_Tree (Tree*, int);

Tree* Del_Info(Tree*, int);

void Del_Tree(Tree*);

Tree* List(int);

//--------------------- Текст функции-обработчика кнопки Создать --------------------

if(root! = NULL) Del_Tree(root);

root = List (StrToInt(Edit1-> Text));

//--------------------- Текст функции-обработчика кнопки Просмотреть ------------

if(root == NULL) ShowMessage(" Create TREE! ");

else {

Memo1-> Lines-> Add(" ---------- View -----------");

View_Tree(root, 0);

}

//--------------------- Текст функции-обработчика кнопки Добавить ------------------

if(root == NULL) root = List (StrToInt(Edit1-> Text));

else Add_List (root, StrToInt(Edit1-> Text));

//--------------------- Текст функции-обработчика кнопки УдалитьINFO -----------

int b = StrToInt(Form1-> Edit1-> Text);

root = Del_Info(root, b);

//--------------------- Текст функции-обработчика кнопки ОЧИСТИТЬ ---------------

Del_Tree(root);

ShowMessage(" Tree Delete! ");

root = NULL;

//--------------------- Текст функции-обработчика кнопки EXIT ------------------------

if(root! =NULL){

Del_Tree(root);

ShowMessage(" Tree Delete! ");

}

Close();


Поделиться с друзьями:

mylektsii.su - Мои Лекции - 2015-2024 год. (0.006 сек.)Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав Пожаловаться на материал