当前位置: 首页 > news >正文

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; } }
http://www.cnnetsun.cn/news/113552.html

相关文章:

  • 雷柏V500Pro键盘新手必看:5分钟搞定基础设置
  • Java小白必看:5分钟上手MD5加密解密
  • AI一键搞定Java8安装:快马平台智能配置指南
  • 二叉排序树的构建与遍历
  • AI风险行为识别系统开发:给安全防护装个“智能哨兵”
  • After Effects Roto Brush 3.0:甲方没给绿幕也要“抠人”?AI 帮你 3 秒钟搞定逐帧噩梦
  • 1分钟搞定!用zip命令快速打包你的项目原型
  • 28、Linux 文件和目录管理全解析
  • 雷科电力-REKE610D绝缘油介质损耗电阻率测试仪
  • 对于设计IT系统的相关思路
  • 轻量无负担!2025 年 3 款小巧型文件加密软件分享
  • Canoe-Autosar网络管理自动化测试脚本 Capl源码,全套,修改项目配置可以直接使用...
  • 亚马逊、速卖通采购测评:构建安全环境,保障高效下单指南
  • 软连接vs硬链接:哪种更能提升你的工作效率?
  • 完全合作型博弈:当所有人的利益捆绑在一起 (Fully Cooperative)
  • 挖SRC必须知道的25个漏洞提交平台
  • AI市场舆情分析榜,原圈科技领跑研报神器
  • AI一键生成Python安装包配置脚本
  • 零基础学网安不慌!电脑小白 4 阶段入门路线,分阶段学习不踩坑
  • 传统锁 vs Redisson分布式锁:效率对比实测
  • 封神!从开发转安全渗透工程师,这是我做的最对的职业选择
  • 3、循环与分支:编程中的核心逻辑控制
  • 小白必看:5分钟学会检查你的个人信息是否泄露
  • 效率对比:传统开发vs使用MyBatisPlus代码生成器
  • DeepSeek在线:5分钟打造你的AI应用原型
  • EVS9323-EP伺服变频器
  • AI市场舆情分析榜,原圈科技领跑车企
  • 1900-0711-81触摸屏面板
  • 深圳比亚迪游学|被Zhong国智造狠狠圈粉!新能源黑科技太炸了[特殊字符]✨
  • 小程序项目之捷邻小程序源码(java+ssm+小程序+mysql)