首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何打印二进制搜索树?

如何打印二进制搜索树?
EN

Stack Overflow用户
提问于 2012-04-20 14:52:55
回答 2查看 1.4K关注 0票数 1

嗨,我已经在mips中实现了bst,我需要打印这棵树。每个节点有以下四个信息

  • 的值
  • 父母的地址
  • 左孩子的地址
  • 右子的地址

我应该以下列格式打印树。(x指无子女)

代码语言:javascript
运行
复制
12

8-16

x-9  13-17

x-x  x-11 x-x  x-x

请你提出一种实现这种打印方法的方法好吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-04-20 15:06:49

打印树的顺序是宽度优先(逐级)遍历。一个选项如下:维护一个工作列表,最初以树根作为种子。然后,重复地从工作列表中排出队列,打印当前元素(如果不存在x),然后将这两个子元素添加到工作列表中。您可能需要一些方法来跟踪遍历树的时间,也许是先计算节点的数量,然后在打印了那么多节点之后停止。

尽管如此,由于您在MIPS中这样做,一个更简单的选择是将树线性化为数组,然后打印数组。如果以类似于在隐式二进制堆中对节点编号的方式对节点进行编号,则可以递归/迭代地遍历树,用树节点填充数组,然后遍历打印所有内容的数组。

希望这能有所帮助!

票数 1
EN

Stack Overflow用户

发布于 2012-04-20 15:04:35

由于您需要按级别打印二叉树,所以打印信息的最obivous方法是使用广度优先搜索方法遍历树。其余的都是直截了当的,不应该成为一个问题。:)

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

https://stackoverflow.com/questions/10248555

复制
相关文章

相似问题

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