33#include < vector>
44#include < string>
55using namespace std ;
6- class Node
6+
7+ namespace BinarySearchTree
78{
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;
1316
14- Node (int data, Node* parent, Node* left, Node* right);
15- };
17+ Node (int data, Node* parent, Node* left, Node* right);
18+ };
1619
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