一,题目:输入一颗二元树,从上往下按层打印树的每个结点,同一层中按照从左往右的顺序打印。 例如输入
8 / \ 6 10 / \ / \ 5 7 9 11
输出:8 6 10 5 79 11。
二,分析:
本题主要考察树的层序遍历,最常用的方法就是采用队列的形式。
按照,根左右的形式依次将元素弹入队列中。然后取出队列头部,再将头部的左右子树弹入队列中。这样就可以层序遍历整个二叉树。有些类似树的广度优先查找。
三,源码:
#include "stdio.h" #include "malloc.h" #include "stack.h" struct node { int data; node *right; node *left; }; node *root; void insert(node *&root,int data) { if(root==NULL) { printf("%d\n",data); root=(node*)malloc(sizeof(node)); root->data=data; root->right=NULL; root->left=NULL; } else { if(root->data<data)//要插入的数据 data大于节点 则插入右边 insert(root->right,data); else insert(root->left,data); } } node *creatTree(int a[],int n) { int i; for(i=0;i<n;i++) insert(root,a[i]); return root; } void leveltree(node *root)//层序遍历 { if(!root) return; deque<node*> dequelist; //双端都可以插入的队列 dequelist.push_back(root); //插入一个元素到队列的尾部 while(dequelist.size()) { node* pnode=dequelist.front();//获取队列的头 dequelist.pop_front();//弹出队列的头 printf("data=%d\n",pnode->data); if(pnode->left) dequelist.push_back(pnode->left); //若有左子树,把它的左子树压入队列中 if(pnode->right) dequelist.push_back(pnode->right); //若有右子树,把它的右子树压入队列中 } } int main() { int a[]={8,6,5,7,10,9,11}; root=creatTree(a,7); leveltree(root);//采用循环的方式 return 0; }
您还没有登录,请您登录后再发表评论
基于C++的二叉树构造、翻转、节点总数计算、层高计算、前序打印、层序打印
共包含以下18个: 1.建立二叉树 2.树形输出 3.广义表形输出 4.判断是否为空树 5.求树的深度 6.插入孩子结点 7.删除孩子结点 ...16.后序遍历 17.层序遍历 18.销毁树 按树形输出是自己想的算法,供参考。
层序地层学模式图及复习试题.pdf
第十六题 食品链表 测试16 第十七题 合并两个小区链表 测试17 第十八题 判断二叉树A中是否包含子树B 测试18 第十九题 二叉树的镜像 测试19 第二十题 顺时针打印矩阵 测试20 第二十一题 包含min函数的栈 测试21 第二...
用C++类机制实现二叉树数据结构,接口具备如下功能: 构造空树;销毁树;按定义构造树;清空树;判断树是否为空;返回树深度;返回树的根;返回节点值;为节点赋值;返回节点双亲;...层序遍历打印节点。
参照此样例,可以快速实现二叉树的构建,增加节点,各种遍历方法
python python_leetcode面试题解之第103题二叉树的锯齿形层序遍历_题解
C语言层序设计 语法基础习题,为初学者提供测试平台
二叉树的各种遍历(前序、中序、后序、层序),以及计算树的叶子树和树的深度
美赛各题常用算法层序与参考代码大全,涵盖历年来美赛ABCDEF题常用代码。美赛必备。
要求能够输入树的各个结点,并能够输出用不同方法遍历的遍历序列; 分别建立建立二叉树存储结构的的输入函数、输出层序遍历序列的函数、输出先序遍历序列的函数
1 已知二叉树以二叉链表作为存储结构,写一个算法按层序遍历它,通过程序在终端屏幕上打印出它的层序序列。 2 先建立二叉树的二叉链表存储结构,再遍历它。 3 利用队列完成算法。
深度优先遍历生成树,并对生成树进行层序遍历,输出得到的序列(数据结构C语言版)
为了利用测井资料进行单井高分辨率层序分析,运用数理统计的方法、Fischer图解法等数学方法,进行测井曲线的预处理、测井相的识别、测井沉积旋回的划分、测井层序的识别和划分、基准面旋回等识别,进行测井高分辨率层序...
程序代码包括创建二叉树,遍历树,创建哈夫曼树,打印哈夫曼树叶子节点的路径。
python python_leetcode面试题解之第107题二叉树的层序遍历II
二叉树层序遍历Ⅰ——剑指offer32-Ⅰ 从上到下,从左到右打印二叉树,返回一维数组int[] res。 class Solution { public int[] levelOrder(TreeNode root) { if (root == null) return new int[0]; Queue...
层序地层考试复习_可用于打印.html
C++数据结构与算法二叉树的层序遍历代码及注释
python python_leetcode面试题解之第102题二叉树的层序遍历_题解
相关推荐
基于C++的二叉树构造、翻转、节点总数计算、层高计算、前序打印、层序打印
共包含以下18个: 1.建立二叉树 2.树形输出 3.广义表形输出 4.判断是否为空树 5.求树的深度 6.插入孩子结点 7.删除孩子结点 ...16.后序遍历 17.层序遍历 18.销毁树 按树形输出是自己想的算法,供参考。
层序地层学模式图及复习试题.pdf
第十六题 食品链表 测试16 第十七题 合并两个小区链表 测试17 第十八题 判断二叉树A中是否包含子树B 测试18 第十九题 二叉树的镜像 测试19 第二十题 顺时针打印矩阵 测试20 第二十一题 包含min函数的栈 测试21 第二...
用C++类机制实现二叉树数据结构,接口具备如下功能: 构造空树;销毁树;按定义构造树;清空树;判断树是否为空;返回树深度;返回树的根;返回节点值;为节点赋值;返回节点双亲;...层序遍历打印节点。
参照此样例,可以快速实现二叉树的构建,增加节点,各种遍历方法
python python_leetcode面试题解之第103题二叉树的锯齿形层序遍历_题解
C语言层序设计 语法基础习题,为初学者提供测试平台
二叉树的各种遍历(前序、中序、后序、层序),以及计算树的叶子树和树的深度
美赛各题常用算法层序与参考代码大全,涵盖历年来美赛ABCDEF题常用代码。美赛必备。
要求能够输入树的各个结点,并能够输出用不同方法遍历的遍历序列; 分别建立建立二叉树存储结构的的输入函数、输出层序遍历序列的函数、输出先序遍历序列的函数
1 已知二叉树以二叉链表作为存储结构,写一个算法按层序遍历它,通过程序在终端屏幕上打印出它的层序序列。 2 先建立二叉树的二叉链表存储结构,再遍历它。 3 利用队列完成算法。
深度优先遍历生成树,并对生成树进行层序遍历,输出得到的序列(数据结构C语言版)
为了利用测井资料进行单井高分辨率层序分析,运用数理统计的方法、Fischer图解法等数学方法,进行测井曲线的预处理、测井相的识别、测井沉积旋回的划分、测井层序的识别和划分、基准面旋回等识别,进行测井高分辨率层序...
程序代码包括创建二叉树,遍历树,创建哈夫曼树,打印哈夫曼树叶子节点的路径。
python python_leetcode面试题解之第107题二叉树的层序遍历II
二叉树层序遍历Ⅰ——剑指offer32-Ⅰ 从上到下,从左到右打印二叉树,返回一维数组int[] res。 class Solution { public int[] levelOrder(TreeNode root) { if (root == null) return new int[0]; Queue...
层序地层考试复习_可用于打印.html
C++数据结构与算法二叉树的层序遍历代码及注释
python python_leetcode面试题解之第102题二叉树的层序遍历_题解