Sie sind auf Seite 1von 5

// 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

Assignment Solution Created By ROMEO


#include<iostream> #include<conio.h> using namespace std; // Created BY: Moiz Ahmed Romeo// Created BY: Moiz Ahmed Romeo// Created BY: Moiz Ahmed Romeo class BSTNode { public: int number; BSTNode* lpointer; BSTNode* Rpointer; bool Search(int number) { if (number==this->number) { return false; } else if(number< this->number) { if (lpointer==NULL) { lpointer=new BSTNode(number); return true; } else { return lpointer->Search(number); } // Created BY: Moiz Ahmed Romeo// Created BY: Moiz Ahmed Romeo// Created BY: Moiz Ahmed Romeo// } else if (number > this-> number) { if (Rpointer == NULL) { Rpointer = new BSTNode (number);

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

Das könnte Ihnen auch gefallen