树的层序遍历
来源:互联网 发布:粤语网络课程 编辑:程序博客网 时间:2024/05/21 09:49
树的层序遍历
我们先来看一下这道面试题目
二叉树结点的定义如下:
struct BinaryTreeNode{ int m_nValue; BinaryTreeNode *m_pLeft; BinaryTreeNode *m_pRight;};
从上到下打印二叉树的规律:
每一次打印一个结点的时候,如果该结点有子结点,则把该结点的子结点放到一个队列的末尾。接下来到队列的头部取出最早进入队列的结点,重复前面的打印操作,直至队列中所有的结点都被打印出来为止。
既然我们已经确定数据容器是一个队列了,现在的问题就是如何实现队列。实际上我们无需自己动手实现,因为STL已经为我们实现了一个很好的deque(两端都可以进出的队列)。下面是用deque实现的参考代码:
void PrintFromTopToBottom(BinaryTreeNode *pTreeRoot){ if(!pTreeRoot) return; std::deque<BinaryTreeNode*> dequeTreeNode; dequeTreeNode.push_back(pTreeRoot); while(dequeTreeNode.size()) { BinaryTreeNode *pNode = dequeTreeNode.front(); dequeTreeNode.pop_front(); printf("%d " , pNode->m_nValue); if(pNode->m_pLeft) dequeTreeNode.push_back(pNode->m_pLeft); if(pNode->m_pRight) dequeTreeNode.push_back(pNode->m_pRight); }}
转载自:http://www.cnblogs.com/heyonggang/archive/2013/11/03/3405282.html
0 0
- 树的层序遍历
- 树的层序遍历
- 树的层遍历
- 【树】层序遍历
- 层序遍历二叉树指定的某层
- 二叉树的层序遍历
- 二叉树的层序遍历
- 二叉树的层序遍历
- 二叉树的层序遍历
- 二叉树的层序遍历
- 二叉树的层序遍历
- 二叉树的层序遍历
- 树的建立与层序遍历
- 二叉树的层序遍历
- 二叉树的层序遍历
- 二叉树的层序遍历
- 二叉树的层序遍历
- 【C】树的层序遍历
- c++中动态链接库与动态链接库的区别
- python学习系列(五) --- 正则表达式
- width:100%缩小窗口时背景图片出现空白bug
- ios页面间传递参数四种方式
- java回调简单实现
- 树的层序遍历
- 前端编码规范
- shift后门制作和禁止
- 统计Oracle数据库文件的大小
- 自学MFC一个半月,花了3天时间做了一个俄罗斯方块
- spring mvc知识点汇总
- String 算法
- Reveal查看任意app的高级技巧
- 15HD_OJ——献给杭电五十周年校庆的礼物