数据结构-二叉搜索树的查找
发布日期:2022-02-27 02:37:46 浏览次数:46 分类:技术文章

本文共 1632 字,大约阅读时间需要 5 分钟。

**

数据结构-二叉搜索树的查找

**

二叉搜索树(BST)的查找主要分为:
1.查找某一个元素的Find函数
2.查找最小值的FindMin函数
3.查找最大值的FindMax函数
实现方法有:
1.递归(效率较低)
2.迭代(效率较高)

/* 递归查找某一元素  */    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 FindMin(BinTree BST) {
if ( BST ) while ( BST->Left ) BST = BST->Left; /* 沿左分支继续查找,直到最右叶节点 */ return BST; } /* 查找最大元素的递归函数 */ Position FindMax(BinTree BST) {
if ( !BST ) return NULL; /* 空的二叉搜索树,返回NULL */ else if ( !BST->Right ) return BST; /* 找到最右叶节点并返回 */ else return FindMin(BST->Right); /* 沿右分支继续查找 */ } /* 查找最大元素的迭代函数 */ Position FindMax(BinTree BST) {
if ( BST ) while ( BST->Right ) BST = BST->Right; /* 沿左分支继续查找,直到最右叶节点 */ return BST; }

转载地址:https://blog.csdn.net/weixin_43369027/article/details/87271651 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:优化NetBeans的启动速度
下一篇:数据结构-二叉搜索树

发表评论

最新留言

关注你微信了!
[***.104.42.241]2024年04月19日 00时50分23秒