3
3
#include < vector>
4
4
#include < string>
5
5
using namespace std ;
6
- class Node
6
+
7
+ namespace BinarySearchTree
7
8
{
8
- public:
9
- int data;
10
- Node* parent;
11
- Node* left;
12
- Node* right;
9
+ class Node
10
+ {
11
+ public:
12
+ int data;
13
+ Node* parent;
14
+ Node* left;
15
+ Node* right;
13
16
14
- Node (int data, Node* parent, Node* left, Node* right);
15
- };
17
+ Node (int data, Node* parent, Node* left, Node* right);
18
+ };
16
19
17
- class BinarySearchTree
18
- {
19
- private:
20
- Node* _root;
21
- void _InsertNode (Node* node);
22
- Node* _FindNode (int value);
23
- Node* _FindMinimumValueNode (Node* node);
24
- Node* _FindMaximumValueNode (Node* node);
25
- Node* _FindSuccessorNode (Node* node);
26
- Node* _FindPredecessorNode (Node* node);
27
- void _Transplant (Node* nodeU, Node* nodeV);
28
- void _DeleteNode (Node* node);
29
- void _RecursiveInorderTraversal (Node* node, vector<int >& result);
30
- void _RecursivePreorderTraversal (Node* node, vector<int >& result);
31
- void _RecursivePostorderTraversal (Node* node, vector<int >& result);
32
- void _MorrisInorderTraversal (Node* node, vector<int >& result);
33
- void _MorrisPreorderTraversal (Node* node, vector<int >& result);
34
- void _MorrisPostorderTraversal (Node* node, vector<int >& result);
35
- public:
36
- BinarySearchTree ();
37
- void InsertNode (int value);
38
- void DeleteNode (int value);
39
- vector<int > GetRecursiveInorderTravesalResult ();
40
- vector<int > GetRecursivePreorderTravesalResult ();
41
- vector<int > GetRecursivePostorderTravesalResult ();
42
- vector<int > GetMorrisInorderTraversalResult ();
43
- vector<int > GetMorrisPreorderTraversalResult ();
44
- vector<int > GetMorrisPostorderTraversalResult ();
45
- };
20
+ class BinarySearchTree
21
+ {
22
+ private:
23
+ Node* _root;
24
+ void _InsertNode (Node* node);
25
+ Node* _FindNode (int value);
26
+ Node* _FindMinimumValueNode (Node* node);
27
+ Node* _FindMaximumValueNode (Node* node);
28
+ Node* _FindSuccessorNode (Node* node);
29
+ Node* _FindPredecessorNode (Node* node);
30
+ void _Transplant (Node* nodeU, Node* nodeV);
31
+ void _DeleteNode (Node* node);
32
+ void _RecursiveInorderTraversal (Node* node, vector<int >& result);
33
+ void _RecursivePreorderTraversal (Node* node, vector<int >& result);
34
+ void _RecursivePostorderTraversal (Node* node, vector<int >& result);
35
+ void _MorrisInorderTraversal (Node* node, vector<int >& result);
36
+ void _MorrisPreorderTraversal (Node* node, vector<int >& result);
37
+ void _MorrisPostorderTraversal (Node* node, vector<int >& result);
38
+ public:
39
+ BinarySearchTree ();
40
+ void InsertNode (int value);
41
+ void DeleteNode (int value);
42
+ vector<int > GetRecursiveInorderTravesalResult ();
43
+ vector<int > GetRecursivePreorderTravesalResult ();
44
+ vector<int > GetRecursivePostorderTravesalResult ();
45
+ vector<int > GetMorrisInorderTraversalResult ();
46
+ vector<int > GetMorrisPreorderTraversalResult ();
47
+ vector<int > GetMorrisPostorderTraversalResult ();
48
+ };
49
+ }
0 commit comments