|
|
- //
- // Created by 423A35C7 on 2023-11-12.
- //
- // 14:55
- // 16:57
-
- #include "view.cpp"
-
- int main() {
- // 创建二叉树
- BiTree bi_tree;
- // 父节点编号
- int parent = 0;
- // 子节点队列
- std::queue<std::string> children;
- // 文本
- std::string text;
- // 文本长度
- text.reserve(100);
- // 临时变量
- int temp;
- // 错误信息
- std::string error_message;
- // 重新输入
- next_input:
- // 清屏
- clear_screen();
- // 输出二叉树
- output(bi_tree.head, 1, 1);
- // 移动光标到指定位置
- moveto(100, 1);
- // 输出提示信息
- std::cout << error_message << std::endl << "输入整数编号和字符串文本,空格分隔,输入单个非数字字符表示结束:" << std::endl;;
- // 循环输入
- while (std::cin >> parent) {
- // 如果编号不存在
- if (parent >= bi_tree.length) {
- // 设置错误信息
- error_message = "输入的编号不存在,请重新输入:";
- // 忽略输入
- std::cin.ignore(1024, '\n');
- // 重新输入
- goto next_input;
- }
- // 循环输入
- while ((temp = std::cin.get()) > 0) {
- // 根据输入的值进行判断
- switch (temp) {
- // 换行符
- case '\n':
- // 如果文本不为空
- if (!text.empty()) {
- // 将文本添加到子节点队列中
- children.push(text);
- // 清空文本
- text.clear();
- }
- // 将父节点编号和子节点队列插入二叉树
- bi_tree.insert(parent, children);
- // 重新输入
- goto next_input;
- // 空格
- case ' ':
- // 如果文本不为空
- if (!text.empty()) {
- // 将文本添加到子节点队列中
- children.push(text);
- // 清空文本
- text.clear();
- }
- break;
- // 其他字符
- default:
- // 将字符添加到文本中
- text.push_back(temp);
- break;
- }
- }
- }
- // 添加节点
- // children.emplace("张三");
- // children.emplace("李四");
- // children.emplace("王五");
- // bi_tree.insert(parent, children);
- // parent = 2;
- // children.emplace("师大");
- // children.emplace("统计");
- // children.emplace("计算机");
- // bi_tree.insert(parent, children);
- // parent = 0;
- // children.emplace("赵六");
- // bi_tree.insert(parent, children);
- return 0;
- }
|