Loading

二叉树的层序遍历-C语言描述

二叉树遍历的核心问题:二维数组的线性化

队列实现

遍历从根结点开始,首先将根节点入队,然后开始执行循环:

  • 结点出队
  • 访问该结点
  • 其左右儿子入队
void LevelOrderTraversal(BinTree BT)
{
	Queue Q;
	BinTree T;
	if(!BT)return;//空树直接返回
	Q=CreatQueue(Maxsize);//初始化队列
	AddQ(Q,BT);
	while(!IsEmptyQ ( Q ) ){
		T=DeleteQ(Q);
		printf("%d",T->Date);
		if(T->Left) AddQ(Q,T->Left);
		if(T->Right) AddQ(Q,T-Right);
	}
}
posted @ 2022-03-17 10:54  sq800  阅读(89)  评论(0)    收藏  举报