BST中的级别顺序遍历

时间:2015-04-15 21:49:26

标签: queue binary-search-tree

为什么以下代码进入无限循环?我查阅了引用 - Level Order Traversal of a Binary Tree,我发现这与我的代码之间没有太大区别。那究竟是什么问题呢?

void levelorder(struct node *root)
{
queue<struct node*> q;
q.push(root);
while (!q.empty()){

    const node * const temp = q.front();
    q.pop();
    cout<<temp->value << " ";
    if(root->left)
        q.push(root->left);
    if(root->right)
        q.push(root->right);
     }
}

1 个答案:

答案 0 :(得分:0)

级订单遍历:

输入8,4,2,3,12

我的输出8 4 2 12 3(输出错误)

在这个a中是从0到3(树的高度)

 int level(tree *start, int a)
    {
      if(start==NULL)
        return(-1);
      if(a==0)
        printf("%d  ",start->info);
      else
      {
        level(start->left,--a);
        level(start->right,--a);
      }
    }