我已经用mips实现了bst,我需要打印这棵树。 每个节点都有以下四个信息
其价值
父母的地址
离开孩子的地址
正确的孩子的地址
我应该按以下格式打印树。 (x表示没有孩子)
12
8-16
x-9 13-17
x-x x-11 x-x x-x
您能否建议一种实施此打印方法的方法?
答案 0 :(得分:1)
当您需要逐级打印二进制树时,打印信息的最常用方法是使用广度优先搜索方法遍历树。 其余的很简单,应该不是问题。 :)
答案 1 :(得分:1)
您打印树的顺序是广度优先(逐级)遍历。一个选项如下:维护一个工作列表,最初用树的根植入。然后,重复从工作列表中出列,打印当前元素(如果不存在,则打印x),然后将两个子项添加到工作列表中。你可能需要一些方法来跟踪你完成遍历树的时间,可能先计算节点数,然后在打印那么多节点后停止。
也就是说,因为你在MIPS中这样做,一个更简单的选择是将树线性化为一个数组,然后打印数组。如果以类似于隐式二进制堆中节点编号的方式对节点编号,则可以递归/迭代地遍历树,使用树节点填充数组,然后遍历阵列打印所有内容。
希望这有帮助!