栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

在二叉搜索树上实现迭代器

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

在二叉搜索树上实现迭代器

可能最简单的迭代器存储最后看到的密钥,然后在下一次迭代时,在树中搜索该密钥的最小上限。迭代为O(log
n)。这具有非常简单的优点。如果密钥较小,则迭代器也较小。当然,它的缺点是迭代树的方法相对较慢。它也不适用于非唯一序列。

有些树正好使用您已经使用的实现,因为对于它们的特定用途来说,扫描非常快很重要。如果每个节点中的键数很大,那么存储同级指针的代价就不会太麻烦。大多数B树使用此方法。

许多搜索树实现都在每个节点上保留一个父指针,以简化其他操作。如果有,则可以使用指向最后看到的节点的简单指针作为迭代器的状态。在每次迭代中,您都在最后看到的节点的父节点中寻找下一个子节点。如果没有更多的兄弟姐妹,那么您将再上一层。

如果这些技术都不适合您,则可以使用存储在迭代器中的一堆节点。当正常遍历搜索树时,此功能与函数调用堆栈的功能相同,但是您无需将同级循环并在子级上进行递归,而是将子级推入堆栈并返回每个后续的同级。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/616984.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号