-->
当前位置:首页 > 题库 > 正文内容

程序填空题:Width of a Binary Tree

Luz4年前 (2021-05-10)题库668
The function is to find the width of a binary tree `T`. The width of a binary tree is the maximum number of nodes on one level of the tree. The functions `Queue_rear` and `Queue_front` return the current rear and front element's positions in the queue `Q`, respectively.

```c++
typedef struct TreeNode *BinTree;
struct TreeNode
{
int Key;
BinTree Left;
BinTree Right;
};

int Width( BinTree T )
{
BinTree p;
Queue Q;
int Last, temp_width, max_width;

temp_width = max_width = 0;
Q = CreateQueue(MaxElements);
Last = Queue_rear(Q);
if ( T == NULL) return 0;
else {
Enqueue(T, Q);
while (!IsEmpty(Q)) {
p = Front_Dequeue(Q);
@@[temp_width++](3);
if ( p->Left != NULL ) Enqueue(p->Left, Q);
@@[if ( p->Right != NULL ) Enqueue (p->Right, Q)](3);
if ( Queue_front(Q) > Last ) {
Last = Queue_rear(Q);
if ( temp_width > max_width ) max_width = temp_width;
@@[temp_width = 0](3);
} /* end-if */
} /* end-while */
return max_width;
} /* end-else */
}
```





答案:
第1空:temp_width++

第2空:if ( p->Right != NULL ) Enqueue (p->Right, Q)

第3空:temp_width = 0

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。