我正在尝试打印这棵树:
1
/ \
2 3
/ / \
4 5 6
这样:
1
2 3
4 5 6
我写了这段代码:
void print_g(Tree t)
{
Queue q=initQueue();
Tree tmp=initTree();
if(!isTreeEmpty(t))
enqueue(q,t);
while(!isQueueEmpty(q))
{
tmp=dequeue(q);
printf("%d ",*((int *)Root(tmp)));
if(!isTreeEmpty(subLeft(tmp)))
enqueue(q,subLeft(tmp));
if(!isTreeEmpty(subRight(tmp)))
enqueue(q,subRight(tmp));
}
}
但是这段代码打印出来是这样的:
123456
我想不出如何解决打印问题。 有人可以写一下伪代码吗?
谢谢。
最佳答案
将子级添加到队列后,创建一个值为换行符的假树节点并将其添加到队列中。
关于c - 需要有关树打印代码的帮助,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7353036/