实现一颗二叉树的层序遍历【每日一题】
来源:互联网 发布:手机淘宝主页图片尺寸 编辑:程序博客网 时间:2024/06/05 09:31
题目:层序遍历二叉树
给定一棵二叉树,要求层序遍历该二叉树,即从上到下按层次访问该树,每一层单独输出一行,每一层要求访问的顺序为从左到右。我们在遍历的过程中将该层节点的孩子节点压入一个队列,这样就可以实现从上到下一层一层地遍历该二叉树。
初始时,根结点入队列。
然后,while循环判断队列不空时,弹出一个结点,访问它,并把它的所有孩子结点入队列。
template<class T>struct BinaryTreeNode{ BinaryTreeNode(const T& data) :_data(data) ,_pLeft(NULL) ,_pRight(NULL) {} T _data; BinaryTreeNode<T>* _pLeft; BinaryTreeNode<T>* _pRight;};template<class T> class BinaryTree{ typedef BinaryTreeNode<T> Node;public: BinaryTree() :_pRoot(NULL) {} BinaryTree(const T array[],size_t size,const T& invalid) { size_t index = 0; _CreateTree(_pRoot,array,size,index,invalid); } void LevelOrder() { cout<<"层序遍历二叉树:"<<endl; queue<Node*> q; Node* pCur = NULL; if(NULL != _pRoot) { q.push(_pRoot); while(!q.empty()) { pCur = q.front(); cout<<pCur->_data <<" "; if(pCur->_pLeft ) q.push(pCur->_pLeft ); if(pCur->_pRight ) q.push(pCur->_pRight ); q.pop(); } } cout<<endl; }private: void _CreateTree(Node*& pRoot,const T array[],size_t size,size_t& index, const T& invalid) { if(index < size && array[index ]!= invalid) { pRoot = new Node(array[index]); _CreateTree(pRoot->_pLeft ,array,size,++index,invalid); _CreateTree(pRoot->_pRight ,array,size,++index,invalid); } }private: Node* _pRoot;};int main(){ char *str = "124###35##6"; BinaryTree<char> t(str,strlen(str),'#'); t.LevelOrder (); return 0;}
阅读全文
0 0
- 实现一颗二叉树的层序遍历【每日一题】
- 每日一题之二叉树的层序遍历
- 实现一颗二叉树的层序遍历。
- 实现一颗二叉树的层序遍历
- 实现一颗二叉树的层序遍历
- 实现一棵二叉树的层序遍历
- 二叉树--实现一颗二叉树的层序遍历
- 每日一题之实现二叉树的前序/中序/后序非递归遍历
- 数据结构面试题/实现一颗二叉树的层序遍历
- 二叉树三种遍历非递归实现【每日一题】
- 第16题:层序遍历一棵二叉树
- 每日一题之由前序遍历和中序遍历重建二叉树
- 每日一题(72) - 分层遍历二叉树
- 【每日一题-9】层序遍历与N!后的0的个数
- 每日一题--二叉树的深度
- 每日一练(41) - 二叉搜索树的后序遍历序列
- 【每日一题-15】二叉树非递归遍历&求两个集合的差集
- 求二叉树的高度/销毁一颗二叉树【每日一题】
- 将三个数按从大到小输出
- Cash Machine (多重背包)
- scrollview,键盘遮挡输入框,上移
- RPC框架性能基本比较测试
- centos6.7下snort2.9.9.0+base+barnyard2的安装
- 实现一颗二叉树的层序遍历【每日一题】
- 2017年SEO优化中影响页面权重值的项目
- POJ
- HDU2089_不要62_数位DP
- DBSCAN 具有噪声的基于密度的聚类算法简述 附Python代码
- USACO-Section2.1 sort3[排序][递归]
- 笨小熊
- WebGL 绘制Line的bug(一)
- 获取当前网络信息,状态,以及ping网址