news 2026/1/21 11:15:21

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/1/21 1:27:28

VictoriaMetrics集群架构与工作流解析

一、VictoriaMetrics 组件总体架构图 Operator 工作流程图 二、它们是如何协同工作的&#xff08;工作流&#xff09; 1. 数据采集链路 vmagent 发现 targets → 拉取 metrics → 本地缓存/限流 发送给 vminsert vminsert 接收数据 → 校验 → 压缩 → 根据租户/seriesID 分…

作者头像 李华
网站建设 2026/1/18 16:11:43

【银河麒麟】桌面操作系统-dpkg命令的常见用法

【 概 述 】银河麒麟桌面系统的包管工具dpkg在实际的生产、办公或是排障中有很大用处&#xff0c;下面笔者将结合案例展现dpkg命令的一些常见用法&#xff0c;文末拓展了一个实用的包提取工具 【 常见用法 】 1、# dpkg -l | grep 包名查看是否安装了某个软件包&#xff0c;gr…

作者头像 李华
网站建设 2026/1/15 0:09:33

10 个AI论文工具,专科生轻松搞定毕业写作!

10 个AI论文工具&#xff0c;专科生轻松搞定毕业写作&#xff01; AI 工具如何成为论文写作的得力助手 对于专科生来说&#xff0c;毕业论文写作常常是学业中最棘手的一环。从选题到开题&#xff0c;再到撰写和降重&#xff0c;每一个环节都可能让人感到压力山大。而随着 AI 技…

作者头像 李华
网站建设 2025/12/26 15:11:35

Java函数入门:5分钟学会编写你的第一个函数

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 创建一个简单的Java入门教程项目&#xff0c;包含以下基础函数示例&#xff1a;1)打印Hello World的函数&#xff0c;2)两数相加的函数&#xff0c;3)判断数字奇偶的函数&#xff0…

作者头像 李华
网站建设 2025/12/27 4:28:23

电商主图救星!3个AI换背景技巧,0设计感也能出高点击图

打造爆款电商主图真的太难了&#xff01;搭场景和找美工定制费钱耗时&#xff0c;自己抠图换背景还容易边缘粗糙、光影违和&#xff0c;反而掉档次。那么当下有什么AI工具可以轻松打造爆款主图呢&#xff0c;以下这个工具可以解决这个问题。其中包含3种商品更换背景方法&#x…

作者头像 李华
网站建设 2026/1/19 14:41:18

RGBA入门指南:从零开始学颜色表示

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 开发一个交互式RGBA学习平台&#xff0c;包含&#xff1a;1) RGBA基础知识讲解 2) 可视化颜色编辑器 3) 实时编码练习区 4) 小测验功能。要求界面友好&#xff0c;有分步引导&#…

作者头像 李华