二叉树的层序遍历
2017-07-22 08:59
127 查看
题目:实现一颗二叉树的层序遍历,树的结点定义如下
实现思路 采用队列辅助,先将树的根节点入队,
如果队列不空,则进入循环
{
输出首元素
如果该队首元素有左孩子,则将其左孩子入队;
如果该队首元素有右孩子,则将其右孩子入队;
将队首元素出对
}
实现代码
typedef struct TreeNode { TreeNode(char data) :_pleft(NULL) , _pright(NULL) , _data(data) {} TreeNode *_pleft; TreeNode *_pright; char _data; }Node;
实现思路 采用队列辅助,先将树的根节点入队,
如果队列不空,则进入循环
{
输出首元素
如果该队首元素有左孩子,则将其左孩子入队;
如果该队首元素有右孩子,则将其右孩子入队;
将队首元素出对
}
实现代码
void Leverorder(Node *pRoot) { if (NULL == pRoot) return; Node *pCur = pRoot; queue<Node*> q; q.push(pCur); while (!q.empty()) { Node *pFront = q.front(); cout << pFront->_data; if (pFront->_pleft) q.push(pFront->_pleft); if (pFront->_pright) q.push(pFront->_pright); q.pop(); } }
相关文章推荐
- 动态二叉树的先序、中序、后序和层序遍历及转换为静态二叉树
- 二叉树的前序,中序,后序和层序遍历java实现
- 二叉树的层序遍历 BFS
- 【数据结构与算法】二叉树的层序遍历
- L2-011. 玩转二叉树 (树的层序遍历)
- 二叉树的前序、中序、后序和层序遍历
- 二叉树的层序遍历
- 二叉树的层序遍历
- 二叉树的层序遍历
- 层序遍历二叉树的两种方法
- 二叉树的遍历——前序,中序,后序,层序
- 二叉树系列--层序遍历(java实现)
- 二叉树的层序遍历
- 数据结构之二叉树的前序遍历、中序遍历、后序遍历、层序遍历
- 遍历二叉树(四种方式:前序、中序、后序、层序)
- 算法题目-二叉树的层序遍历
- pat L2-006-已知二叉树的后序序列和中序序列求层序遍历结果
- 面试题23:从上往下打印二叉树(层序遍历) && 面试题25:二叉树中和为某一值的路径
- 数据结构:二叉树,二叉树的前中后序、层序遍历(递归法,非递归法),得到一个数叶子节点的个数……
- [LeetCode] Binary Tree Level Order Traversal 二叉树层序遍历