什么是二叉搜索树、二叉搜索树的查找(递归或循环)和二叉搜索树的查找最大最小元素。
typedef struct TreeNode *BinTree; typedef BinTree Position; struct TreeNode{ ElementType Data; BinTree Left; BinTree Right; }; BinTree BST; Position Find(ElementType X,BinTree BST) { if(!BST) return NULL;//查找失败 if(X>BST->Data) return Find(X,BST->Right);//在右子树中继续查找 else if(XData) return Find(X,BST->Left);//在左子树中继续查找 else//X==BST->Data return BST;//查找成功,返回结点的找到结点的地址 } Position IterFind(ElementType X,BinTree BST) { while(BST){ if(X>BST->Data) BST=BST->Right;//向右子树中移动,继续查找 else if(X Data) BST=BST->Left;//向左子树中移动,继续查找 else//X==BST->Data return BST;//查找成功,返回结点的找到结点的地址 } return NULL;//查找失败 } Position FindMin(BinTree BST)//查找最小元素的递归函数 { if(!BST) return NULL;//空的二叉搜索树,返回NULL else if(!BST->Left) return BST;//找到最左叶结点并返回 else return FindMin(BST->Left);//沿左分支继续查找 } Position FindMax(BinTree BST)//查找最大元素的迭代函数 { if(BST) while(BST->Right) BST=BST->Right; //沿右分支继续查找,直到最右点结点 return BST; }