首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >面试准备-在现实世界中,二进制搜索树中的一个访问节点是如何实现的?

面试准备-在现实世界中,二进制搜索树中的一个访问节点是如何实现的?
EN

Stack Overflow用户
提问于 2018-07-18 15:44:26
回答 1查看 31关注 0票数 0

我在准备面试的数据结构部分。我看到了关于二叉树在现实世界中的应用的问题-- 二叉树的应用是什么?

我的问题是不同的-如何实际访问基于树的数据结构中的节点?

我理解BFS,DFS等对于显式节点遍历,我有一种感觉,这不是真实世界的工作方式。人们是编写自己的遍历/搜索算法,还是依赖迭代器和数据库提供的类似访问方法?

访问结构化树数据的高级抽象(如果有的话)的名称是什么?我正在考虑迭代器,但不确定这是否是正确的术语。

我正在寻找一种在这个问题上聪明地交谈的方法。

EN

回答 1

Stack Overflow用户

发布于 2018-07-18 15:59:20

访问结构化树数据的高级抽象的名称是什么(如果有的话)?

Iterator更适合于线性数据结构,如链表或动态数组。由于树是一种分层的数据结构,所以parent()child()children()ancestor()descendent()更适合.例如,如果您想要实现一个文件系统,您将拥有RootDirectory并获取您可能调用的所有子目录,比如getAllSubDirectories(),它们实际上是根目录的子目录。因此,命名实际上是特定于域的。

代码语言:javascript
运行
复制
class Directory {
   private Integer someAttribute;
   ....
   ....
   private Directory parentDirectory;
   List<Directory> subDirectories;
}

您可以抽象为迭代器,也可以在分层数据结构上调用iterator.hasNext()iterator.next()。例如,对于二进制搜索树,您可以抽象出一个迭代器,该迭代器可以在两个方向上以前置/无序/后继遍历的方式迭代树。见有序接班人

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51406105

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档