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 自动生成**