数据结构《15》----二叉树的层序遍历

来源:互联网 发布:淘宝菜鸟电子面单申请 编辑:程序博客网 时间:2024/05/20 18:47
输入一颗二元树,从上往下按层打印树的每个结点,同一层中按照从左往右的顺序打印。
例如输入
       8
      /  \
    6   10
   /  \   /  \
   5 7 9 11

输出 8 6 10 5 7 9 11。


分析:

与二叉树其他的三种遍历不同,层序遍历使用的不是栈,而是队列。


// copyright @ L.J.SHOU Mar.10, 2014// level order traversal void LevelOrder(TreeNode *root){  if(root == NULL) return;  queue<TreeNode*> q;  TreeNode *node(NULL);  q.push(root);  while(!q.empty())  {    node = q.front(); q.pop();cout << node->val << " ";if(node->left) q.push(node->left);if(node->right) q.push(node->right);  }  cout << endl;}


1 0