二叉树的层次遍历

二叉树的层次遍历

需要用到二叉树和队列两个数据结构,利用队列的先进先出原则。

首先把根节点入队,然后出队的同时把根节点的左右子节点入队(如果有),一直执行直到队列为空。输出的顺序就是按照二叉树的层次输出。

void PrintLevel(Tree T)
{
	Queue Q;
	Q = CreateQueue();	// 创建一个空队
	Enqueue(T, Q);		// 把树的根节点入队
	while(!IsEmpty(Q))	// 当队列为空结束循环
	{
		T = FrontAndDequeue(Q);	// 出队并且对T赋值
		PrintElement(T);	// 打印这个节点的元素
		// 出队的同时把左右儿子入队(如果有)
		if(T->Left != NULL)
			Enqueu(T->Left, Q);
		if(T->Right != NULL)
			Enqueu(T->Right; Q);
	}
}
不一定每天 code well 但要每天 live well
原文地址:https://www.cnblogs.com/geekfx/p/12423063.html