Advertisement
saske_7

7_bstsearch(data lab).cpp

Sep 8th, 2017
92
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.22 KB | None | 0 0
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. struct TreeNode{
  4. int info;
  5. struct TreeNode *left;
  6. struct TreeNode *right;
  7.  
  8. };
  9. typedef struct TreeNode BstNode ;
  10. BstNode* GetNode(int item)
  11. {
  12. BstNode* NewNode ;
  13. NewNode = (BstNode*) malloc(sizeof(BstNode));
  14. NewNode-> info = item;
  15. NewNode-> left = NewNode ->right = 0;
  16.  
  17. return NewNode;
  18. }
  19.  
  20.  
  21. BstNode* Insert(BstNode* root,int data ){
  22.  
  23. if(root == 0) {
  24.         root = GetNode(data);
  25.  
  26. }
  27. else if(data <= root-> info ) root-> left = Insert(root-> left ,data);
  28. else root-> right = Insert(root-> right ,data);
  29.  
  30.  
  31. return root;
  32. }
  33.  
  34. int search(BstNode *root , int data){
  35. if(root == 0)return 0;
  36. else if(root->info == data )return 1;
  37. else if(data < root->info ) return search(root-> left, data);
  38. else return search(root-> right, data);
  39.  
  40.  
  41. }
  42.  
  43. int main(){
  44.  // freopen("in.txt","r",stdin);
  45.  // freopen("out.txt","w",stdout);
  46. BstNode *root ;
  47.     root = 0;
  48. int k,j,i ;
  49. printf("how many elements : ");
  50.  
  51. scanf("%d",&k);
  52. for(i = 0; i< k; i++){
  53.   scanf("%d",&j);
  54.   root = Insert(root ,j );
  55. }
  56. while(1){
  57.   printf("Enter item to search(0 to break) : ");
  58.     scanf("%d",&k );
  59.     if(search(root, k)==1) printf("item found\n");
  60.     else printf("item not found\n");
  61.  
  62. }
  63. return 0;}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement