实现一颗二叉树的层序遍历
2017-07-24 15:25
330 查看
#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; }
运行结果:
相关文章推荐
- 实现一颗二叉树的层序遍历【每日一题】
- 二叉树--实现一颗二叉树的层序遍历
- 实现一颗二叉树的层序遍历/给定一个整数N,那么N的阶乘N!末尾有多少个0呢
- 实现一颗二叉树的层序遍历
- 数据结构面试题/实现一颗二叉树的层序遍历
- 实现一颗二叉树的层序遍历。
- 【LeetCode-面试算法经典-Java实现】【107-Binary Tree Level Order Traversal II(二叉树层序遍历II)】
- Java实现二叉树的前序、中序、后序、层序遍历(非递归方法)
- Java实现二叉树的前序、中序、后序、层序遍历(递归方法)
- JAVA下实现二叉树的先序、中序、后序、层序遍历(递归和循环)
- 二叉树的遍历:前序,中序,后序,层序--包括递归和非递归实现
- Java实现二叉树的前序、中序、后序、层序遍历(非递归方法)
- C语言非递归实现二叉树的先序、中序、后序、层序遍历
- 【LeetCode-面试算法经典-Java实现】【102-Binary Tree Level Order Traversal(二叉树层序遍历)】
- 二叉树的遍历:前序,中序,后序,层序--包括递归和非递归实现(转)
- 用java实现二叉树相关操作(前序建树,前中后递归非递归遍历,层序遍历)
- 二叉树(创建、前序、中序、后序、层序遍历理论及java实现)
- 建立二叉树,实现二叉树的层序遍历
- 二叉树的层序遍历算法实现
- 二叉树的创建、前序中序后序递归遍历与非递归遍历、层序遍历以及二叉树简单应用的C语言实现