Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<bits/stdc++.h>
- using namespace std;
- struct TreeNode{
- int info;
- struct TreeNode *left;
- struct TreeNode *right;
- };
- typedef struct TreeNode BstNode ;
- BstNode* GetNode(int item)
- {
- BstNode* NewNode ;
- NewNode = (BstNode*) malloc(sizeof(BstNode));
- NewNode-> info = item;
- NewNode-> left = NewNode ->right = 0;
- return NewNode;
- }
- BstNode* Insert(BstNode* root,int data ){
- if(root == 0) {
- root = GetNode(data);
- }
- else if(data <= root-> info ) root-> left = Insert(root-> left ,data);
- else root-> right = Insert(root-> right ,data);
- return root;
- }
- void preorder(BstNode *root)
- {
- if(root == 0)
- return ;
- printf("%d ",root->info);
- preorder(root->left) ;
- preorder(root-> right ) ;
- }
- void postorder(BstNode *root)
- {
- if(root == 0)
- return ;
- postorder(root->left) ;
- postorder(root-> right ) ;
- printf("%d ",root->info);
- }
- void inorder(BstNode *root)
- {
- if(root == 0)
- return ;
- inorder(root->left) ;
- printf("%d ",root->info);
- inorder(root-> right ) ;
- }
- int main(){
- // freopen("in.txt","r",stdin);
- // freopen("out.txt","w",stdout);
- BstNode *root ;
- root = 0;
- int k,j,i ;
- printf("how many elements : ");
- scanf("%d",&k);
- for(i = 0; i< k; i++){
- scanf("%d",&j);
- root = Insert(root ,j );
- }
- printf("preorder\n");
- preorder(root);
- printf("\n\npostorder\n");
- postorder(root);
- printf("\n\ninorder\n");
- inorder(root);
- return 0;}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement