首页 > 学院 > 开发设计 > 正文

什么是二叉搜索树、二叉搜索树的查找(递归或循环)和二叉搜索树的查找最大最小元素

2019-11-08 20:27:57
字体:
来源:转载
供稿:网友

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(X<BST->Data)		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<BST->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; }


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表