c++ - 从上到下横向打印 BST

标签 c++ stl binary-search-tree

我有一个与 BST 打印相关的问题。我可以使用不同的树打印算法在侧面打印树。但是,我总是从左到右打印树。那么有没有办法把树倒过来打印呢?我看到一些关于使用 XY 的想法,但我不想在控制台中这样做,那么是否有任何不同的方法可以实现相同的目的?

编辑:例如,我的输入为 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;
}

最佳答案

你是说Breadth-First Search

关于c++ - 从上到下横向打印 BST,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9864902/

相关文章:

C++/STL : XOR of two set

c++ - 如何输入自定义类的 vector ?

algorithm - 任意n元树中至多有ceiling(n/2^(h+1))个高度为h的节点

java - BST 数据结构 -- 类项目 -- 访问嵌套类

c++ - BST c++ 中的段错误

C++/C 使用 berkeleys/bsd 套接字从 http 下载文件

C++ 编译时表达式作为数组大小

c++ - 根据字符串长度调整 QGraphicsItem 的大小

c++ - 迭代可变参数模板类的基类

c++ - 如何在 C++ Map 中找到最大值