1. 程式人生 > >求樹的深度(層次遍歷)

求樹的深度(層次遍歷)

題目描述: 二叉樹採用二叉連結串列儲存,設計一個非遞迴演算法求二叉樹的高度。

核心程式碼: (全部程式碼請參照本部落格判斷完全二叉樹)

void Leveltravel(BiTree Bt)
{
	if(Bt)
	{
		int max;
		Sq q;BiTree e;
		InitSq(q);
		Bt->f=1;
		InSq(q,Bt);//根節點入佇列 
		while(!Isempty(q))//
		{
			OutSq(q,e);
			printf("%c ",e->data);
			if(e->lchild)
			{
				InSq(q,e->lchild);// 
				e->lchild->f=max=e->f+1;
			}
			if(e->rchild)
			{
				InSq(q,e->rchild);// 
				e->rchild->f=max=e->f+1;
			}
		}
		printf("\n深度為=%d\n",max);
	}
}