嗨,我已经在mips中实现了bst,我需要打印这棵树。每个节点有以下四个信息
我应该以下列格式打印树。(x指无子女)
12
8-16
x-9 13-17
x-x x-11 x-x x-x请你提出一种实现这种打印方法的方法好吗?
发布于 2012-04-20 15:06:49
打印树的顺序是宽度优先(逐级)遍历。一个选项如下:维护一个工作列表,最初以树根作为种子。然后,重复地从工作列表中排出队列,打印当前元素(如果不存在x),然后将这两个子元素添加到工作列表中。您可能需要一些方法来跟踪遍历树的时间,也许是先计算节点的数量,然后在打印了那么多节点之后停止。
尽管如此,由于您在MIPS中这样做,一个更简单的选择是将树线性化为数组,然后打印数组。如果以类似于在隐式二进制堆中对节点编号的方式对节点进行编号,则可以递归/迭代地遍历树,用树节点填充数组,然后遍历打印所有内容的数组。
希望这能有所帮助!
发布于 2012-04-20 15:04:35
由于您需要按级别打印二叉树,所以打印信息的最obivous方法是使用广度优先搜索方法遍历树。其余的都是直截了当的,不应该成为一个问题。:)
https://stackoverflow.com/questions/10248555
复制相似问题