毕业了C++二叉树层次遍历
//代码经过测试,赋值粘贴即可用
#include<iostream>
#include<stdio.h>
#include<stack>
#include<queue>
#include<malloc.h>
using namespace std; //二叉树结点
typedef struct BTNode{
char data;
struct BTNode *lchild;
struct BTNode *rchild;
}BTNode; //模板先序建立二叉树,大话p187,教科书吧版
BTNode *CreateBiTree()//只需要一个函数
{
char ch;
BTNode *T;
scanf("%c",&ch);
if(ch=='#')
T=NULL;
else
{
T = (BTNode *)malloc(sizeof(BTNode));
T->data = ch;
T->lchild = CreateBiTree();
T->rchild = CreateBiTree();
}
return T;//返回根节点
} //层次遍历
void LevelOrder(BTNode *T){
//queue<BTNode> queue;大bug隐藏在这个地方;注意queue这个容器装的是什么东西
queue<BTNode *> queue;
queue.push(T); //算法:根结点入队列 while(!queue.empty()){ //若队列非空则循环执行下列的3个步骤 T = queue.front(); //步骤1:对头元素出队,指针从新指向,front()方法是将返回队头元素
printf("%c ",T->data);//队头元素出队然后将队头元素的左右孩子入队
queue.pop();//pop是出队 if(T->lchild != NULL){//步骤2:左子树不空,将左子树入队
queue.push(T->lchild);//入队的就是一个地址元素
} if(T->rchild != NULL){//步骤3:右子树不空,将右子树入队
queue.push(T->rchild);
}
}
}
int main()
{
BTNode *T;
T = CreateBiTree();//建立 LevelOrder(T); return ;
}
毕业了C++二叉树层次遍历的更多相关文章
- 毕业了-java二叉树层次遍历算法
/*************************************** * 时间:2017年6月23日 * author:lcy * 内容:二叉树的层次遍历 * 需要借助队列这个数据结构,直 ...
- [Leetcode] Binary tree level order traversal二叉树层次遍历
Given a binary tree, return the level order traversal of its nodes' values. (ie, from left to right, ...
- DS二叉树--层次遍历
题目描述 层次遍历二叉树,是从根结点开始遍历,按层次次序“自上而下,从左至右”访问树中的各结点. 建树方法采用“先序遍历+空树用0表示”的方法 要求:采用队列对象实现,函数框架如下: 输入 第一行输入 ...
- 32-2题:LeetCode102. Binary Tree Level Order Traversal二叉树层次遍历/分行从上到下打印二叉树
题目 给定一个二叉树,返回其按层次遍历的节点值. (即逐层地,从左到右访问所有节点). 例如: 给定二叉树: [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7 ...
- 剑指 Offer 32 - I. 从上到下打印二叉树 + 层次遍历二叉树
剑指 Offer 32 - I. 从上到下打印二叉树 Offer_32_1 题目描述 解题思路 这题属于简单题,考察的是我们对二叉树以及层次遍历的方法. 这里只需要使用简单的队列即可完成二叉树的层次遍 ...
- [Leetcode] Binary tree level order traversal ii二叉树层次遍历
Given a binary tree, return the bottom-up level order traversal of its nodes' values. (ie, from left ...
- [LeetCode107]Binary Tree Level Order Traversal II 二叉树层次遍历
题目: Given a binary tree, return the bottom-up level order traversal of its nodes' values. (ie, from ...
- 算法与数据结构(三) 二叉树的遍历及其线索化(Swift版)
前面两篇博客介绍了线性表的顺序存储与链式存储以及对应的操作,并且还聊了栈与队列的相关内容.本篇博客我们就继续聊数据结构的相关东西,并且所涉及的相关Demo依然使用面向对象语言Swift来表示.本篇博客 ...
- lintcode二叉树的锯齿形层次遍历 (双端队列)
题目链接: http://www.lintcode.com/zh-cn/problem/binary-tree-zigzag-level-order-traversal/ 二叉树的锯齿形层次遍历 给出 ...
随机推荐
- P1941 飞扬的小鸟(背包)
P1941 飞扬的小鸟 细节题 上升是完全背包 下降是01背包 (数组访问越界本机怎么能过???(大雾)) #include<iostream> #include<cstdio> ...
- windows下利用批处理脚本监控程序
1.要监控的程序为使用cygwin环境编译的exe可执行文件hello.exe,源码如下: #include <stdio.h> #include <unistd.h> voi ...
- SSD-Tensorflow 从工程角度进行配置
目录 SSD-Tensorflow 工程角度配置 Download from the github 数据集转化tfrecords格式 训练模型(pre-train) 训练方案一 训练方案二 训练方案3 ...
- POJ 2699 The Maximum Number of Strong Kings (最大流+枚举)
http://poj.org/problem?id=2699 题意: 一场联赛可以表示成一个完全图,点表示参赛选手,任意两点u, v之间有且仅有一条有向边(u, v)或( v, u),表示u打败v或v ...
- Codeforces Round #320 (Div. 2) [Bayan Thanks-Round] E. Weakness and Poorness 三分
E. Weakness and Poorness time limit per test 2 seconds memory limit per test 256 megabytes input sta ...
- shell 判断文件是否存在,没有则创建
没有该文件则创建,有则 ls -l 输出文件信息. #!/bin/bash echo "enter the name:" read filename if test -e $fil ...
- c++之to_string()函数
函数原型:string to_string (int val);string to_string (long val);string to_string (long long val);string ...
- Java回顾之ORM框架
这篇文章里,我们主要讨论ORM框架,以及在使用上和JDBC的区别. 概述 ORM框架不是一个新话题,它已经流传了很多年.它的优点在于提供了概念性的.易于理解的数据模型,将数据库中的表和内存中的对象建立 ...
- 递归--练习2--noi6261汉诺塔
递归--练习2--noi6261汉诺塔 一.心得 先把递推公式写出来,会很简单的 二.题目 6261:汉诺塔问题 总时间限制: 1000ms 内存限制: 65536kB 描述 约19世纪末,在欧州 ...
- Tornado源码分析 --- 静态文件处理模块
每个web框架都会有对静态文件的处理支持,下面对于Tornado的静态文件的处理模块的源码进行分析,以加强自己对静态文件处理的理解. 先从Tornado的主要模块 web.py 入手,可以看到在App ...