Professional Documents
Culture Documents
// Created BY: Moiz Ahmed Romeo// Created BY: Moiz Ahmed Romeo// Created BY: Moiz Ahmed Romeo
return true; } else { return Rpointer->Search(number); } } return false; } // Created BY: Moiz Ahmed Romeo// Created BY: Moiz Ahmed Romeo// Created BY: Moiz Ahmed Romeo // Created BY: Moiz Ahmed Romeo// Created BY: Moiz Ahmed Romeo// Created BY: Moiz Ahmed Romeo BSTNode() {} BSTNode(int value) { this->number = value; lpointer = NULL; Rpointer = NULL; } }; // Created BY: Moiz Ahmed Romeo// Created BY: Moiz Ahmed Romeo// Created BY: Moiz Ahmed Romeo // Created BY: Moiz Ahmed Romeo// Created BY: Moiz Ahmed Romeo// Created BY: Moiz Ahmed Romeo // Created BY: Moiz Ahmed Romeo// Created BY: Moiz Ahmed Romeo// Created BY: Moiz Ahmed Romeo // Created BY: Moiz Ahmed Romeo// Created BY: Moiz Ahmed Romeo// Created BY: Moiz Ahmed Romeo class BST { private: BSTNode* Root; public: BST() { Root = NULL; count2 = 0; count1 = 0; } int count1; int count2; void cout2Increment(int i) { count2+=1;
} void cout1Increment(int i) { count1+=1; } int getCounter(int i) { int k; if(i==1) { k= count1; } else { k=count2; } return k; } void Display(); void PreOrder(BSTNode*); int TotalNodes(); int searchNode(BSTNode*); int SearchLeaf(); int HelperLeaf(BSTNode*); bool add(int number) { if (Root == NULL) { Root = new BSTNode(number); return true; } else { return Root->Search(number); } } }; // Created BY: Moiz Ahmed Romeo// Created BY: Moiz Ahmed Romeo// Created BY: Moiz Ahmed Romeo // Created BY: Moiz Ahmed Romeo// Created BY: Moiz Ahmed Romeo// Created BY: Moiz Ahmed Romeo int BST::SearchLeaf() { return HelperLeaf(Root); }
int BST::HelperLeaf(BSTNode* pt) { if(pt !=NULL) { if (pt->Rpointer==NULL && pt->lpointer==NULL) { cout1Increment(1); } HelperLeaf(pt->lpointer); HelperLeaf(pt->Rpointer); } return getCounter(1); } void BST::Display() { PreOrder(Root); } void BST::PreOrder(BSTNode* pt) { if (pt != NULL) { cout<<pt->number<<endl; PreOrder(pt->lpointer); PreOrder(pt->Rpointer); } else { return; } } // Created BY: Moiz Ahmed Romeo// Created BY: Moiz Ahmed Romeo// Created BY: Moiz Ahmed Romeo int BST::TotalNodes() { return searchNode(Root); } int BST::searchNode(BSTNode* pt) { if (pt != NULL) { cout2Increment(1); searchNode(pt->lpointer); searchNode(pt->Rpointer); }
return getCounter(2); } // Created BY: Moiz Ahmed Romeo// Created BY: Moiz Ahmed Romeo// Created BY: Moiz Ahmed Romeo // Created BY: Moiz Ahmed Romeo// Created BY: Moiz Ahmed Romeo// Created BY: Moiz Ahmed Romeo main() { BST node; int i=0; int element[]={35, 27, 15, 59, 31, 29, 33, 85, 62, 96, 78}; while(i!=11) { int data=element[i]; if (node.add(data)==false) { cout<<"\nElement is Duplicated:\n"<<endl; } i=i+1; } cout<<"Displaying nodes values:\n"<<endl; node.Display(); // Created BY: Moiz Ahmed Romeo// Created BY: Moiz Ahmed Romeo// Created BY: Moiz Ahmed Romeo cout<<"Number of leaf nodes in the BST = "<<node.SearchLeaf()<<endl<<endl; cout<<"Total number of nodes in the BST = "<<node.TotalNodes(); getch(); } // Created BY: Moiz Ahmed Romeo// Created BY: Moiz Ahmed Romeo// Created BY: Moiz Ahmed Romeo // Created BY: Moiz Ahmed Romeo// Created BY: Moiz Ahmed Romeo// Created BY: Moiz Ahmed Romeo