按层次遍历二叉树算法

问题:按层次遍历二叉树

在网上看了一些按层次遍历二叉树的算法,这里修改了一下通过队列来按层次遍历二叉树的算法

——————————————————-

网上说的通过队列来实现的解释是:

设置一个队列,然后只要队列不为空,将对首元素的左右孩子加入队列(如果左右孩子不为空),然后将队列的首元素出对即可

《按层次遍历二叉树算法》

流程如下:

《按层次遍历二叉树算法》

注:图片来源网络


为了避免大材小用,用单向队列简简单单,清清淡淡。

#include
#include
using namespace std;
void PrintAtLevel(Tree T) {
	queue myqueue;
	myqueue.push(T);
	while (!myqueue.empty()) {
		Tree tmp = myqueue.front();
		if (tmp->lchild != NULL)
			myqueue.push(tmp->lchild);
		if (tmp->rchild != NULL)
			myqueue.push(tmp->rchild);
		cout << tmp->value << " ";
		myqueue.pop();
	}
}

    原文作者:小小Rain
    原文地址: https://blog.csdn.net/aaa791678470/article/details/71634054
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞