程序填空题:层序遍历
下列代码的功能是将二叉树`T`中的结点按照层序遍历的顺序输出。
```c++
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 )](3);
if ( @@[T->Right](3) )
@@[Enqueue( T->Right, Q )](3);
}
}
```
答案:
第1空:Enqueue( T->Left, Q )
第2空:T->Right
第3空:Enqueue( T->Right, Q )
```c++
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 )](3);
if ( @@[T->Right](3) )
@@[Enqueue( T->Right, Q )](3);
}
}
```
答案:
第1空:Enqueue( T->Left, Q )
第2空:T->Right
第3空:Enqueue( T->Right, Q )