-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathBinaryTree.h
49 lines (37 loc) · 1.34 KB
/
BinaryTree.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
#pragma once
#ifndef _BINARYTREE_H_
#define _BINARYTREE_H_
#include "BinaryTreeNode.h"
/// @brief Бинарное дерево.
struct BinaryTree
{
BinaryTreeNode* Root;
};
/// @brief Инициализация дерева.
/// @param binaryTree Указатель на узел корня.
void InitializeTree(BinaryTree* binaryTree);
/// @brief Поиск элемента.
/// @param node Указатель на узел корня.
/// @param value Значение которое надо найти.
/// @return Указатель на узел найденного элемента.
BinaryTreeNode* Find(BinaryTreeNode* node, const int value);
/// @brief Посик минимального элемента.
/// @param node Указатель на узел корня.
/// @return Указатель на узел найденного элемента.
BinaryTreeNode* FindMinimal(BinaryTreeNode* node);
/// @brief Посик максимального элемента.
/// @param node Указатель на узел корня.
/// @return Указатель на узел найденного элемента.
BinaryTreeNode* FindMaximal(BinaryTreeNode* node);
/// @brief Вставка элемета.
/// @param node Указатель на узел корня.
/// @param value Значение которое надо вставить.
void Insert(BinaryTreeNode*& node, const int value);
/// @brief Удаление элемента.
/// @param node Указатель на узел корня.
/// @param value Значение которое надо удалить.
void Remove(BinaryTreeNode*& node, const int value);
/// @brief Очистка памяти.
/// @param node Укзатель на узел корня.
void FreeTree(BinaryTreeNode* node);
#endif //_BINARYTREE_H_