news 2026/4/3 5:24:34

DS二叉排序树之创建和插入

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
DS二叉排序树之创建和插入

题目描述

给出一个数据序列,建立二叉排序树,并实现插入功能。

在建立和插入操作后,都输出二叉树的先序遍历结果i

输入

第1行输入n,表示序列包含n个数据

第2行输入n个数据,都是自然数且互不相同,数据之间用空格隔开

第3行输入m,表示要插入m个数据

输入m行,每行一个要插入的数据,都是自然数且和前面的数据不等

输出

第一行输出一开始构建的二叉排序树的先序遍历结果

从第二行起,输出m行,每行输出插入一个数据到二叉排序树后的先序遍历结果

每行输出的遍历结果中,每个数据后面都带一个空格,最后一个数据也带。

IO模式

本题IO模式为标准输入/输出(Standard IO),你需要从标准输入流中读入数据,并将答案输出至标准输出流中。

输入样例:

6 22 33 55 66 11 44 3 77 50 10

输出样例:

22 11 33 55 44 66 22 11 33 55 44 66 77 22 11 33 55 44 50 66 77 22 11 10 33 55 44 50 66 77

代码实现:

#include <format> #include<iostream> using namespace std; class BST { private: struct TreeNode { int val; TreeNode *left,*right; TreeNode(int x) : val(x), left(nullptr), right(nullptr) {} }; TreeNode* root; TreeNode* insertNode(TreeNode* node,int val) { if (node==nullptr)return new TreeNode(val); if (val<node->val)node->left=insertNode(node->left,val); else node->right=insertNode(node->right,val); return node; } void preOrder(TreeNode* node) { if (node==nullptr)return; cout<<node->val<<" "; preOrder(node->left); preOrder(node->right); } public: BST() : root(nullptr) {} void insert(int val) { root=insertNode(root,val); } void preOrderTraversal() { preOrder(root); } }; int main() { int n;cin>>n; BST bst; for (int i=0;i<n;i++) { int val;cin>>val; bst.insert(val); } bst.preOrderTraversal(); cout<<endl; int m;cin>>m; for (int i=0;i<m;i++) { int val;cin>>val; bst.insert(val); bst.preOrderTraversal(); cout<<endl; } }
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/3/31 0:49:16

零基础教程:Visual Studio下载安装图文指南

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 开发一个面向新手的Visual Studio安装引导应用&#xff0c;功能&#xff1a;1. 分步骤图文指导下载过程&#xff1b;2. 基础组件自动选择&#xff08;C#、Python等入门必备&#xf…

作者头像 李华
网站建设 2026/4/2 3:22:17

高效监控利器:vmagent全面解析

一、基本介绍 vmagent是一个小型代理&#xff0c;可帮助您从各种来源收集指标&#xff0c; 重新标记和筛选收集到的指标&#xff0c;并通过 Prometheus协议或 VictoriaMetrics协议 将它们存储在VictoriaMetrics 或任何其他存储系统中 。remote_write remote_write 二、 背景 …

作者头像 李华
网站建设 2026/4/1 21:06:58

比手动快10倍!自动化处理Schannel错误的方法

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 创建一个Schannel错误自动修复工具包&#xff0c;包含&#xff1a;1. 错误快速诊断模块 2. 一键修复脚本集合 3. 系统配置备份功能 4. 修复效果验证测试 5. 效率对比报告生成。要求…

作者头像 李华
网站建设 2026/4/2 4:37:13

Kubernetes etcd备份恢复集群升级指南

集群管理命令 etcdctl是一个命令行的客户端&#xff0c;它提供了一些命令&#xff0c;可以方便我们在对服务进行测试或者手动修改数据库内容。etcdctl命令基本用法如下所示&#xff1a; etcdctl [global options] command [command options] [args...] 具体的命令选项参数可…

作者头像 李华
网站建设 2026/3/26 13:19:10

智能赋能高效执法|AR警务智能眼镜核心应用详解|阿法龙XR云平台

AR警务智能眼镜是一款融合AR增强现实、AI智能识别与大数据交互技术的移动执法终端&#xff0c;专为警务安保场景量身打造。其以解放双手、精准识别、高效协同为核心目标&#xff0c;通过人脸核验与车牌识别、远程指挥三大核心功能&#xff0c;构建一体化安防体系&#xff0c;助…

作者头像 李华
网站建设 2026/3/28 9:30:57

比手动快10倍!MySQL日期格式化高效方法对比

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 生成一个性能对比测试&#xff1a;1) 手动编写5种常见日期格式化SQL 2) 使用AI生成相同功能的代码。记录各自耗时和正确率&#xff0c;并输出对比报告。包括DATE_FORMAT、UNIX_TIME…

作者头像 李华