我有一个与BST打印有关的问题。我可以使用不同的树形打印算法来横向打印树。但是,我总是从左到右打印树。那么有什么方法可以颠倒打印树吗?我看到了关于使用XY的一些想法,但我不想在控制台中这样做,那么是否有任何不同的方法来实现相同的事情?从上到下打印BST
编辑:例如,我有输入作为L,M,R,T,S,G,Y,S,d,E,C,使用序遍历A.,我得到这个输入
Y
T
S
R
M
L
G
E
D
C
A
我想要的与将此90度旋转到右侧相同,L应该位于顶部,其次是其他位置。编辑2:这是使用Level Order打印树的代码,但是,我不确定如何将格式显示为我想要的。
queue<TreeNode*> q;
while(node != NULL)
{
cout << node->data << " " << endl;
if (node->left)
q.push(node->left);
if(node->right)
q.push(node->right);
if(!q.empty())
{
node = q.front();
q.pop();
}
else
node = NULL;
}
没有树的实施有一个链接到他们的父节点?如果是这样,我认为应该可以做到这一点。如果没有,那么你可以运行一个正常的打印并将这些值存储在一个数组中,然后向后遍历它(尽管这样做效率很低)。 – twain249 2012-03-25 23:17:24
“颠倒”是什么意思? – 2012-03-25 23:17:52
是的,有左和右指针。 – Spincel 2012-03-25 23:18:18