SP8842 BWORK - Boring Homework
题目描述
Z 教授常常给学生布置许多单调乏味的作业。上周,他讲解了二叉搜索树(BST)的概念后,要求学生根据给定的数字序列画出 BST 的图形。由于 Maryanna 花费大量时间在玩游戏《星际争霸 II》上,以至于无法及时完成功课,她需要你的帮助。
_什么是二叉搜索树呢?它是一种基于节点的二叉树数据结构,具有如下特点:_
- 节点的左子树仅包含键值小于该节点的节点。
- 节点的右子树仅包含键值大于该节点的节点。
- 左右子树本身也必须是二叉搜索树。
_——节选自维基百科_
要画出 BST 的图形,你可以遵循以下的规则:
1. 一个只有一个节点的 BST,其图形为 1*1 的大小,用单一的字母 'o' 表示(即第 15 位小写拉丁字母)。
2. 如果 BST 有非空的子树,则在子树根节点的正上方画一竖线 '|',在竖线的上方再画一横线 '+'。最后,在横线所在的行上,用最少数量的 '-' 将 '+'(代表左右子树)与 'o'(代表子树的父节点)相连。
3. 若存在左子树,必须将其画在父节点左侧。同理,若有右子树,则画在父节点右侧。
4. BST 的根节点在所在列中不得包含左子树或右子树的任何字符。
5. 每一列中的字符要么来自 BST 的左子树,要么来自右子树,即对于一个 BST 节点,其左子树和右子树在整个树的图形中不能共享同一列。
可以参考示例输出来更好地理解图形的格式。
输入格式
输入的第一行包含一个整数 **T**,表示测试用例的数量,其中 **T**
输出格式
对于每个测试用例,首先输出 "Case #x:",其中 x 从 1 开始。接下来按要求的格式输出 BST 的图形,每行末尾不允许有多余的空格。具体格式参考示例输出。
_注意:每行最后不能有多余的空格。_
**本翻译由 AI 自动生成**