博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
从上到下打印二叉树——层序遍历二叉树
阅读量:6318 次
发布时间:2019-06-22

本文共 848 字,大约阅读时间需要 2 分钟。

题目:从上往下打印出二叉树的每个结点,同一层的结点按照从左到右的顺序打印

 

 

例如输入

 

      8

    /  \
   6    10
  /\     /\
 5  7   9  11

 

输出8   6   10   5   7   9   11。

 

二叉树结点的定义如下:

struct BinaryTreeNode{    int             m_nValue;    BinaryTreeNode *m_pLeft;    BinaryTreeNode *m_pRight;};

从上到下打印二叉树的规律:每一次打印一个结点的时候,如果该结点有子结点,则把该结点的子结点放到一个队列的末尾。接下来到队列的头部取出最早进入队列的结点,重复前面的打印操作,直至队列中所有的结点都被打印出来为止。

既然我们已经确定数据容器是一个队列了,现在的问题就是如何实现队列。实际上我们无需自己动手实现,因为STL已经为我们实现了一个很好的deque(两端都可以进出的队列)。下面是用deque实现的参考代码:

void PrintFromTopToBottom(BinaryTreeNode *pTreeRoot){	if(!pTreeRoot)		return;	std::deque
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://uqdaa.baihongyu.com/

你可能感兴趣的文章
“平头哥”半导体公司
查看>>
在代码中设置RelativeLayout布局中标签的android:layout_toLeftOf、android:layout_toRightOf等属性...
查看>>
CouchDB 简单HTTP接口使用说明
查看>>
随机数
查看>>
论用户体验测试:牛逼的功能千篇一律,好的用户体验万里挑一
查看>>
docker logs 查看实时日志
查看>>
彻底理解Java的feature模式
查看>>
分布式锁原理及实现方式
查看>>
(筆記) 如何安裝Altera USB Blaster? (SOC) (Quartus II) (DE2)
查看>>
#pragma once 是什么意思?
查看>>
八款开源 Android 游戏引擎
查看>>
如何去掉系统快捷方式的箭头(转载)
查看>>
获取枚举类型的 中文 描述 和值
查看>>
BizTalk 开发系列(四十二) 为BizTalk应用程序打包不同的环境Binding
查看>>
POJ 3169 Layout (差分约束)
查看>>
【T10】记住,TCP__IP不是轮询的
查看>>
Linux内核源码树学习:Kconfig和Makefile
查看>>
反编译插件jadclips
查看>>
oracle XE解决端口占用等问题
查看>>
HDU 2094 产生冠军
查看>>