二叉树的层序遍历

来源:互联网 发布:mac怎样建立文件夹 编辑:程序博客网 时间:2024/06/13 09:15

队列 实现 :

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


层序基本过程 :先根结点入队,然后:

  从队列中 取出一个 元素;
  访问 该元素所指结点;
  若该元素所指结点的左、右孩子结点非空,则将其 左、右孩子的指针顺序入队


void LevelOrderTraversal ( BinTree BT )
{

   Queue Q; BinTree T;
   if ( !BT ) return;      /*  若是空树则直接返回 */
   Q = CreatQueue( MaxSize ); /* 创建并初始化队列Q*/
   AddQ( Q, BT );

   while ( !IsEmptyQ( Q ) )

   {
     T = DeleteQ( Q );
     printf(“%d\n”, T->Data); /* 访问取出队列的结点*/
     if ( T->Left ) 

         AddQ( Q, T->Left );
     if ( T->Right )

         AddQ( Q, T->Right );
   }
}


0 0
原创粉丝点击