Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- struct Node{int key;Node* left;Node*right;
- Node(int k):key(k),left(NULL),right(NULL){}
- };
- class BinTree{
- Node* root_;
- public:
- BinTree(){root_=NULL;}
- Node* getRoot(){return root_;}
- void insert(int k){
- Node* node=new Node(k);
- Node* pre=NULL;
- Node* post=root_;
- while(post!=NULL)
- {
- pre=post;
- if(k<=post->key)
- post=post->left;
- else
- post=post->right;
- }
- if(pre==NULL)
- root_=node;
- else if(k<=pre->key)
- pre->left=node;
- else
- pre->right=node;
- }
- int height(Node* tree)
- {
- int hLeft;
- int hRight;
- if(tree==NULL)
- return 0;
- hLeft=height(tree->left);
- hRight=height(tree->right);
- int max;
- if(hLeft>hRight)
- max=hLeft;
- else
- max=hRight;
- return 1 + max;
- }
- };
- int main()
- {
- BinTree s1;
- int h;
- int N;
- int k;
- cin>> N;
- for(int i=0;i<N;i++)
- {
- cin>>k;
- s1.insert(k);
- }
- h=s1.height(s1.getRoot());
- cout<<h<<endl;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement