数据结构-二叉搜索树的查找
发布日期: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 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
关注你微信了!
[***.104.42.241]2024年04月19日 00时50分23秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
LeetCode-409. 最长回文串(Goland实现)
2019-04-27
LeetCode-LCP 18. 早餐组合(Goland实现)
2019-04-27
C++从入门到进阶近100本书推荐电子书pdf
2019-04-28
蓝桥杯 - [2014年第五届真题]分糖果(模拟)
2019-04-28
蓝桥杯 - [2013年第四届真题]大臣的旅费(DFS)
2019-04-28
蓝桥杯 - [2013年第四届真题]带分数(全排列)
2019-04-28
蓝桥杯 - [2013年第四届真题]幸运数(模拟)
2019-04-28
蓝桥杯 - [2013年第四届真题]横向打印二叉树(排序二叉树)
2019-04-28
蓝桥杯 - [历届试题]网络寻路(枚举)
2019-04-28
牛客网 - [中南林业科技大学第十一届程序设计大赛]兑换零钱(背包问题)
2019-04-28
HDU - Robberies(01背包)
2019-04-28
HDU - 最大报销额(01背包|贪心)
2019-04-28
HDU - Coins(完全背包)
2019-04-28
JXFCZX — 砝码称重1(DFS+背包)
2019-04-28
JXFCZX — 质数和分解(完全背包)
2019-04-28
JXFCZX — 花店橱窗(动态规划)
2019-04-28
JXFCZX — 逃亡的准备(多重背包)
2019-04-28
JXFCZX — 庆功会(多重背包)
2019-04-28
AcWing - 扩展欧几里得算法(扩欧)
2019-04-28
AcWing - 高斯消元解线性方程组(高斯消元)
2019-04-28