#include #include using namespace std; class Node { public : int Data; Node* Left; Node* Right; Node(int d) { Left=Right=NULL; Data = d; } }; class Tree { private : Node* Head; queue q; bool flag; void Rec_Inorder(Node* h) { if (h==NULL) return; Rec_Inorder(h->Left); cout<Data<<" "; Rec_Inorder(h->Right); } public : Tree() { Head=NULL ; flag = false; } bool Add(int d) { Node* t = new Node(d); if (Head == NULL) { Head = t; } else { if (q.size() == 0) return false; // age tu saf chizi nabashe dige nemitunim be derakht chizi ezafe konim Node* p = q.front(); if (p->Left==NULL && flag==false) { p->Left = t; } else { p->Right = t; q.pop(); } } q.push(t); flag = false; return true; } bool Ignore() { if (q.size() == 0) return false; Node* p = q.front(); if (p->Left == NULL && flag == false) /// --------------------------------------------------------- !!! flag = true; else { flag = false; q.pop(); } return true; } void Inorder() { cout<<"Inorder = "; Rec_Inorder(Head); // tu ghesmate private ha neveshte shode (Baaala) cout<<"\n"; } }; int main() { Tree t; t.Add(15); t.Add(13); t.Ignore(); t.Ignore(); t.Add(4); t.Add(8); t.Add(7); t.Inorder(); return 0; }