二叉树的层序遍历
来源:互联网 发布:什么叫大数据金融 编辑:程序博客网 时间:2024/06/05 18:25
层序遍历不是二叉树所特有的,但使用二叉树来讲解是因为在视觉和理解上更直观。顾名思议,按层遍历。如下图:
树的层序遍历对应到了图中的宽度优先搜索,需要使用一个队列辅助遍历过程,从图中也可以看出其遍历过程很符合队列的性质。
初始化一个空队列,我们让根节点入队,然后出队,查看出队节点的左孩子是否为空,非空的话,出队节点左孩子入队,查看出队节点的右孩子是否为空,非空的话,出队节点的右孩子入队。然后重复,直到队列大小为空。其实结合上图模拟下过程是很清晰的。
下面是代码
template<typename T>void Tree<T>::Level_Order_Traverse(Tree_Node<T>* node){ queue<Tree_Node<T>*> Visit_Queue; Tree_Node<T>* temp; assert(node == root); Visit_Queue.push(node);//根节点入队 while (Visit_Queue.size()) { //输出队头元素 temp = Visit_Queue.front(); cout << temp->data<< " "; //弹出队头元素 Visit_Queue.pop(); //左右节点非空入队 if (temp->left_node != NULL) Visit_Queue.push(temp->left_node); if (temp->right_node != NULL) Visit_Queue.push(temp->right_node); }}
层序遍历就到说到这里了。后面图的学习笔记会在探究泛化的宽度优先搜索。
0 0
- 二叉树的层序遍历
- 二叉树的层序遍历
- 二叉树的层序遍历
- 二叉树的层序遍历
- 二叉树的层序遍历
- 二叉树的层序遍历
- 二叉树的层序遍历
- 二叉树的层序遍历
- 二叉树的层序遍历
- 二叉树的层序遍历
- 二叉树的层序遍历
- 二叉查找树的层序遍历
- 二叉树的层序遍历
- SDUTACM 二叉树的层序遍历
- 二叉树的层序遍历
- 二叉树的层序遍历
- Leetcode038--二叉树的层序遍历
- 数据结构 二叉树的层序遍历
- 存储系统的块关联挖掘C-Miner算法
- Eclipse中采用本地作业运行器(Job Runner)运行Hadoop测试(Hadoop2.7.3)
- Python常用开源工具包
- 为什么正确的关闭TCP连接
- 《C语言程序开发范例宝典》-基础
- 二叉树的层序遍历
- 单元测试之道
- WPF问题
- 成员变量、局部变量、静态变量的区别
- IOS 获取网络状态
- linux下使用crontab定时备份mongodb数据
- CF
- 数值的整数次方
- LeetCode (Maximum Subarray)