// test20.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include<iostream>
#include<vector>
#include<string>
#include<queue>
#include<stack>using namespace std;struct TreeNode {int val;struct TreeNode *left;struct TreeNode *right;TreeNode(int x) :val(x), left(NULL), right(NULL) {}
};
class Solution {
public:vector<int> PrintFromTopToBottom(TreeNode *root) {vector<int> vec;queue<TreeNode* > qu;if (root == NULL)return vec;qu.push(root);while (!qu.empty()){//cout << qu.front()->val << "  ";vec.push_back(qu.front()->val);if (qu.front()->left != NULL) qu.push(qu.front()->left);if (qu.front()->right != NULL) qu.push(qu.front()->right);qu.pop();}return vec;}void preCreate(TreeNode* &T){int num;cin >> num;if (num == 0) T = NULL;else{T = new TreeNode(num);preCreate(T->left);preCreate(T->right);}}void preOrder(TreeNode* T){if (T == NULL) return; else{cout << T->val << "  ";preOrder(T->left);preOrder(T->right);}}
};
int main()
{Solution so;TreeNode *T1;TreeNode *T2;vector<int> vec;cout << "创建T1:" << endl;so.preCreate(T1);cout << "创建T1成功!" << endl;cout << "T1的前序遍历:" << endl;so.preOrder(T1);cout << endl;vec = so.PrintFromTopToBottom(T1);cout << "层次遍历的结果是:" << endl;for (auto it = vec.begin();it != vec.end();it++)cout << *it << "  ";cout << endl;return 0;
}

转载于:https://www.cnblogs.com/wdan2016/p/5991142.html

从上往下打印出二叉树的每个节点,同层节点从左至右打印相关推荐

  1. java 打印一棵树_java编程题之从上往下打印出二叉树

    本文实例为大家分享了java从上往下打印出二叉树的具体代码,供大家参考,具体内容如下 import java.util.ArrayList; import java.util.Stack; /** * ...

  2. 从上往下打印出二叉树的每个节点,同层节点从左至右打印。

    从上往下打印出二叉树的每个节点,同层节点从左至右打印. 题目:从上往下打印出二叉树的每个节点,同层节点从左至右打印. 分析:借助一个队列,先将根结点的指针入队列,出来时访问它,然后将它的左右孩子带到队 ...

  3. 《剑指Offer》 从上往下打印出二叉树

    题目描述: 从上往下打印出二叉树的每个节点,同层节点从左至右打印. 思路: 其实就是层序遍历,设置一个TreeNode*类型的队列s,用来保存二叉树层序遍历的节点,因为队列是先进先出,所以很好地控制了 ...

  4. 单词迷阵游戏就是从一个10x10的字母矩阵中找出目标单词,查找方向可以从左往右、从右往左、从上往下或者从下往上。例如下面的迷阵中包含quot等单词。

    单词迷阵游戏就是从一个10x10的字母矩阵中找出目标单词,查找方向可以从左往右.从右往左.从上往下或者从下往上.例如下面的迷阵中包含quot等单词. rmhlzxceuq bxmichelle mnn ...

  5. java实现从左到右打印二叉树

    java实现从左到右打印二叉树 对于二叉树相信大家都很熟悉了,作为一个程序员都是学过数据结构的.对于二叉树的遍历大家应该都不陌生吧!我们都试过前序遍历,中序遍历,后续遍历.但是我们很少去从左到右打印一 ...

  6. printf从右向左计算,从左向右打印

    printf从右向左计算,从左向右打印 1.第一个例子 #include <stdio.h>int main() {int x = 0;printf("%d,%d\n" ...

  7. leetcode刷题之 树(14)-递归:找出二叉树中第二小的节点

    [LeetCode] Second Minimum Node In a Binary Tree 二叉树中第二小的结点 Given a non-empty special binary tree con ...

  8. ROS笔记之使用C++打印出当前运行的所有ROS节点

    代码 ros::V_string v_nodes;ros::master::getNodes(v_nodes);for (auto elem : v_nodes) {cout << ele ...

  9. 剑指offer:面试题32 - I. 从上到下打印二叉树

    题目:从上到下打印二叉树 从上到下打印出二叉树的每个节点,同一层的节点按照从左到右的顺序打印. 例如: 给定二叉树: [3,9,20,null,null,15,7], 3/ \9 20/ \15 7 ...

最新文章

  1. 【opencv】(7) 图像匹配、直方图、图像均衡化
  2. sharepoint 备份还原
  3. Nginx模块开发中使用PCRE正则表达式匹配
  4. 给数据库字段增加前缀
  5. html页面导出,HTML页面导出execl表格
  6. 启动mysql失败:net start mysql服务名无效
  7. WebBrowser一点心得,如果在Javascript和Winform代码之间实现双向通信
  8. Pentium 4处理器架构/微架构/流水线 (12) - 微架构框图
  9. mysql创建表时表明加单引号_python在MySQL表名周围插入单引号(‘)
  10. 新概念51单片机c语言教程doc,新概念51单片机C语言教程实例代码.doc
  11. 初学Python目前我认为较容易理解的求100以内质数(素数)的方法。
  12. 【数学建模】【lingo】lingo的基本操作
  13. 分解gif动图如何操作?手把手教你动图分解方法
  14. 深度学习之tensorflow:tensorflow-cpu;win10+gtx1050ti+tensorflow-gpu搭建过程以及问题解决
  15. 需求开发应用部署“一条龙”,平安云如何加速容器场景落地
  16. 【产品】建立墨菲定律思维模式
  17. STM32系列(HAL库)——F103C8T6点亮1.44寸TFT-LCD彩屏
  18. Riedel 水晶杯:葡萄酒终极发烧设备
  19. CF1647D Madoka and the Best School in Russia(数论,dp,离散化技巧)
  20. MTK657X智能机平台系统文件夹文件详解

热门文章

  1. 二叉树的先序、中序、后序遍历
  2. CodeForces 839D - Winter is here | Codeforces Round #428 (Div. 2)
  3. 关于WEB三层架构的思考
  4. 页面排序(上下元素对换)
  5. linux 逻辑卷扩展
  6. 零位扩展和符号位扩展
  7. MySQL ACID及四种隔离级别的解释
  8. HTML表单提交规则
  9. Nginx配置同时适配电脑和移动端设备
  10. Attribute is missing the Android namespace prefix