二叉排序树的查找

   # include   # include/*   递归前中后遍历   */typedef  struct 节点   {   int 才能;数据;   struct 才能;节点*离开;   struct 才能;节点*正确;   }BTnode;   BTnode * CreateTree (int  [], int  n) {   BTnode才能*,*,* p * pa;   int 才能;我;   根=(BTnode *)才能malloc (sizeof (BTnode));   根才能→数据=https://www.yisu.com/zixun/a [0];   根->左=根->右=零;//建立根节点   (我=1,数据=[我];   p ->左=p ->右=零;   c=根;//根节点给C指针   而(c)   {//判断p结点时属于左子树还是右子树   pa=c;//pa指针是p结点的父节点   如果(c -> p ->数据)   c=c ->左;   其他的   c=c ->;   }   如果(pa -> p ->数据)//p结点时父节点的左孩子还是右孩子   pa ->左=p;   其他的   pa ->右=p;   }   返回根;   }      BTnode *查询(BTnode *根,BTnode *父母,BTnode * p, int键)   {   如果根(!)   p=父母;   返回NULL;   如果(根->数据==键)   p=根;   返回根;   如果(关键<根->数据)   返回查询(根->左,根,p键);   如果(键>根->数据)   返回查询(根->吧,根,p键);   }   空白福特(BTnode *根)   {   如果(根){   printf (" % d”,根->数据);   printf ("/n”);   福特(根->左);   福特(根->右);   }   }   空白”(BTnode *根)   {   如果(根){   有条不紊地进行(根->左);   printf (" % 3 d”,根->数据);   printf ("/n”);   有条不紊地进行(根->右);   }   }   空白Porder (BTnode *根)   {   如果(根){   Porder(根->左);   Porder(根->右);   printf (" % 6 d”,根->数据);   printf ("/n”);      }   }      int主要(空白)   {   BTnode *根;   int *;   int n;   int我;   printf(“请输入n=");   scanf(“% d”,n);=(int *) malloc (n * sizeof (int));   printf(“请输入数组一个[]=");   (我=0;数据);   }


二叉排序树的查找