剑指offer 面试题23—从上往下打印二叉树
来源:互联网 发布:淘宝导入csv 编辑:程序博客网 时间:2024/06/04 19:19
题目:
从上往下打印出二叉树的每个节点,同一层的节点按照从左到右的顺序打印。
基本思想:
遍历不是先序、中序、后序中的一种。
规律:每一次打印一个节点的时候,如果该节点有子节点,则把该节点的子节点放到一个队里的末尾。接下来到队列的头部取出最早进入队列的节点,重复前面的打印操作。
#include <iostream>#include <deque>using namespace std;//二叉树结点定义typedef struct BiTreeNode{int data;//左右孩子指针struct BiTreeNode *lchild;struct BiTreeNode *rchild;}BiTreeNode,*BiTree;//按先序序列创建二叉树int CreateBiTree(BiTree &T){int data;//按先序次序输入二叉树中结点的值(一个字符),‘#’表示空树cin>>data;if(data == -1){T = NULL;}else{T = (BiTree)malloc(sizeof(BiTreeNode));T->data = data;//生成根结点CreateBiTree(T->lchild);//构造左子树CreateBiTree(T->rchild);//构造右子树}return 0;}void foo(BiTree T){if(!T)return;deque<BiTree> dequeTreeNode;dequeTreeNode.push_back(T);while(dequeTreeNode.size()){BiTree p = dequeTreeNode.front();//返回容器c的第一个元素的引用。如果c为空,则该操作为空dequeTreeNode.pop_front();//删除头部数据cout<<p->data<<" ";if(p->lchild)dequeTreeNode.push_back(p->lchild);if(p->rchild)dequeTreeNode.push_back(p->rchild);}}void main(){BiTree T;CreateBiTree(T);foo(T);}
0 0
- 剑指offer面试题 从上往下打印二叉树
- 剑指offer代码解析——面试题23从上往下打印二叉树
- 剑指Offer:面试题23——从上往下打印二叉树(java实现)
- 剑指offer——面试题23:从上往下打印二叉树
- 剑指offer——面试题23:从上往下打印二叉树
- 剑指offer 面试题23—从上往下打印二叉树
- 剑指offer面试题[23]-从上往下打印二叉树(按层序打印)
- [剑指offer][面试题23]从上往下打印二叉树
- 【剑指offer】面试题23:从上往下打印二叉树
- 《剑指offer》面试题23从上往下打印二叉树
- 剑指Offer:面试题23 从上往下打印二叉树
- 《剑指Offer》学习笔记--面试题23:从上往下打印二叉树
- 剑指offer--面试题23:从上往下打印二叉树--Java实现
- 【剑指Offer学习】【面试题23:从上往下打印二叉树】
- 剑指Offer面试题23(Java版):从上往下打印二叉树
- 剑指offer面试题23-从上往下打印二叉树
- 剑指offer-面试题23:从上往下打印二叉树
- 剑指offer之面试题23:从上往下打印二叉树
- 2013年个人微博推荐技术资料汇总——何登成
- c语言中的memcpy实现
- jquery serialize传中文乱码解决方法
- Markdown 语法(2)- 文本强调
- MacBook入手前知识
- 剑指offer 面试题23—从上往下打印二叉树
- Win7应用程序丢失的问题
- caffe-parallel 使用总结(ONLY_CPU)
- SenchaTouch动画 Ext.Anim的使用
- 阅读1,2
- DeepLearning tutorial(6)易用的深度学习框架Keras简介
- Java NIO:浅析I/O模型
- JDK+MyEclipse+Tomcat的配置
- iOS --- 在UITableView中使用segue进行页面跳转的注意事项