typedef struct TreeNode *Tree;
struct TreeNode
{
   int Key;
   Tree  Left;
   Tree  Right;
};

void Level_order ( Tree T )
{
   Queue Q;
   if ( !T ) return; 
   Q = CreateQueue( MaxElements ); 
   Enqueue( T, Q ); //入队操作
   while ( !IsEmpty( Q ) ){
      T = Front_Dequeue ( Q ); /* return the front element and delete it from Q */
      printf("%d ", T->Key);
      if ( T->Left )//如果左子树不为空将左节点入队
        Enqueue(T->left,Q);
      if (T->Right) //如果右子树不为空将右节点入队
         Enqueue(T->Right,Q);
   }
}
最后修改:2019 年 05 月 14 日 07 : 25 PM