主要观点:Ruby 集合通常只能为Enumerable
模块定义一个#each
,但二叉树等有多种有效遍历方式的集合存在问题。
关键信息:
- 二叉树有前序、中序、后序等多种遍历方式,可作为对象的方法实现。
Enumerable
要求集合类有#each
方法,若将遍历方法别名#each
,则只能按该遍历方式使用枚举方法。- 可使用
Enumerator
类返回枚举器,从遍历方法中返回,使调用者可选择遍历方式,如tree.inorder.find
等。 - 推荐在 Ruby 中创建可迭代集合时,若集合有多种有效遍历,返回
Enumerator
而不是包含Enumerable
。
重要细节: - 展示了二叉树不同遍历方式的代码实现,如
preorder
等方法。 - 提到
Object#to_enum
方法可将遍历方法构建为枚举器。 - 推荐观看Teaching Ruby to Count视频深入了解相关内容。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。