实现一颗二叉树的层序遍历。
来源:互联网 发布:java前端开发 编辑:程序博客网 时间:2024/06/09 13:42
1.--实现一颗二叉树的层序遍历。
分析如下:
1.如果此二叉树为空直接返回;
2.要想层序遍历二叉树,我们必须要一个容器来保存它的左右孩子节点
3.这个容器必须是先进先出,所以我们选择队列
4.已经遍历过的节点必须从队列中pop出去
代码如下:
#include<iostream>#include<queue>using namespace std;struct Node{Node(int val):_left(NULL),_right(NULL),_val(val){}Node* _left;Node* _right;int _val;};class BinaryTree{public:BinaryTree(){}~BinaryTree(){}void SequenceTree(Node* root){if(root==NULL)return ;if(root->_left==NULL&&root->_left==NULL){cout<<root->_val<<" ";return ;}queue<Node*> q;Node* cur=root;while(cur){cout<<cur->_val<<" ";if(cur->_left) q.push(cur->_left);//push左节点进队列if(cur->_right) //push右节点进队列 q.push(cur->_right);cur=q.front();//cur等于队列首节点,pop掉该节点q.pop();}}private:Node* root;};int main(){BinaryTree t;Node* node1=new Node(1);Node* node2=new Node(2);Node* node3=new Node(3);Node* node4=new Node(4);Node* node5=new Node(5);Node* node6=new Node(6);Node* node7=new Node(7);node1->_left=node2;node1->_right=node3;node2->_left=node4;node2->_right=node5;node3->_left=node6;node3->_right=node7;t.SequenceTree(node1);system("pause");return 0;}
运行结果:
阅读全文
0 2
- 实现一颗二叉树的层序遍历。
- 实现一颗二叉树的层序遍历
- 实现一颗二叉树的层序遍历
- 实现一棵二叉树的层序遍历
- 二叉树--实现一颗二叉树的层序遍历
- 实现一颗二叉树的层序遍历【每日一题】
- 数据结构面试题/实现一颗二叉树的层序遍历
- 建立二叉树,实现二叉树的层序遍历
- 每日一题之二叉树的层序遍历
- 队列实现二叉树的层序遍历
- Java实现二叉树带行号的层序遍历
- 二叉树的层序遍历
- 二叉树的层序遍历
- 二叉树的层序遍历
- 二叉树的层序遍历
- 二叉树的层序遍历
- 二叉树的层序遍历
- 二叉树的层序遍历
- STM32学习笔记之芯片简介
- oracle增删改字段、建表、建序列
- 编写Java程序,用三元运算符和if嵌套完成此题。
- 运行SSH框架的Javaweb项目时,提示Java.lang.ClassNotFoundException:org.apache.commons.lang.xwork.StringUtils。
- 排序--归并排序
- 实现一颗二叉树的层序遍历。
- 使用Hystrix对Dubbo消费者提供线程隔离保护
- oracle-启动、登录、关闭
- JAVA强制转换学习
- iOS手势(滑动)返回的实现(自定义返回按钮)
- Spring MVC学习笔记(一)
- POJ 2777 Count Color (线段树+状态压缩)
- ubuntu 16.04 安装php扩展
- swift3 激光推送的消息推送和接收