मैं c ++ करने के लिए अभी शुरुआत कर रहा हूँ और एक BST के न्यूनतम तत्व की खोज के साथ समस्या हो रहा हूँ। BST इस तरह से कार्यान्वित किया जाता है:
class Tree{
struct Node {
int Element;
Node *Left, *Right;
Node(int Element) : Element(Element), Left(0), Right(0){}
};
Node *Root;
void InOrder(void(*Action)(int&), Node *Current);
void Destroy(Node *Current);
public:
Tree() : Root(0){}
void Insert(int Element);
void InOrder(void(*Action)(int&)) {InOrder(Action,Root);}
void Destroy() {Destroy(Root);}
};
Inorder, नष्ट और सम्मिलित तरीकों इस तरह लागू किया जाता है:
void Tree::Insert(int Element) {
Node *NewElement = new Node(Element);
if(!Root) Root = NewElement;
else {
Node *Previous, *Current = Root;
while(Current) {
Previous = Current;
if(Element < Current->Element) Current = Current->Left;
else Current = Current->Right;
}
if(Element < Previous->Element) Previous->Left = NewElement;
else Previous->Right = NewElement;
}
}
void Tree::InOrder(void(*Action)(int&),Node *Current) {
if(Current) {
InOrder(Action,Current->Left);
Action(Current->Element);
InOrder(Action,Current->Right);
}
}
void Tree::Destroy(Node *Current) {
if(Current) {
Destroy(Current->Left);
Destroy(Current->Right);
delete Current;
}
}
और मुख्य कार्य और समारोह जो मैं संख्या मुद्रित करने के लिए का उपयोग इस तरह दिखेगा:
void Print(int &e) {
cout << e << endl;
}
int main() {
Tree t;
while(1) {
int Number;
cout << Insert number (insert 0 to end): ;
cin >> Number;
if(Number == 0) break;
t.Insert(Number);
}
t.InOrder(Print);
t.Destroy();
getch();
}
क्या आपने देखा हो सकता है, inorder विधि को भी लागू किया गया है, हो सकता है यह किसी तरह से इस्तेमाल किया जा सकता मेरी समस्या ... मेरा बुरा अंग्रेजी के लिए खेद है सुलझाने में मदद करने के लिए: /













