
   #define NULL 0

   class TreeNode{
      friend class BSTree;
      private:
         TreeNode *lchild, *rchild;
         Type data; int leftsize;
   };
             // ...

   TreeNode* BSTree::Searchk(int k)
   {   bool notfound = 1; TreeNode* t = tree;
       while ((t) && (notfound)) {
          if (k == (t->leftsize)) notfound = false;
          else if (k<(t->leftsize)) t=t->lchild;
          else {
             k -= (t->leftsize);
             t = t->rchild;
          }
       }
       if (notfound) return NULL;
       else return t;
   }

