en造数据结构与算法C# 之 二叉排序树的增/查

news2024/9/28 2:30:23

前篇:en造数据结构与算法C# 二叉排序树 泛型类的基本构成-CSDN博客

了解了基本结构以后就可以为其编写增加代码了

注意在二叉排序树类中定义了一个根节点

AddNode(添加节点)方法分析

输入:

一个添加节点的位置(默认为根节点)

一个本体值

添加节点无非就两种情况:

1.根节点为空,那就顺势创建一个新节点上去

 private Node<T> Add(Node<T> root, T data) {
     if (root == null) {
         root = new Node<T>(data);
         return root;
     }

2.根节点不为空则直接添加到根节点上去,并且进行排序,选择存入左节点还是右节点

如果有多个数据,则不停地递归放到子节点的子节点下去即可

// 如果本体值大于等于根节点的值,那就递归调用,直到放在右节点/左节点
if (data.CompareTo(root.data) >= 0) {
    root.RightNode = Add(root.RightNode, data);
}
else {
    root.LeftNode = Add(root.LeftNode, data);
}
return root;

 Search(查找节点)方法分析

输入

一个开始的节点

一个需要查找的值

传入需要开始的节点和本体值之后,就与传入节点的值进行比较

如果该值比根节点的值小,就去找更小值,所以要去找左子节点 (递归寻找左节点)

反之比根节点的值大就去从右节点递归,直到返回对应值

 

   public Node<T> Search(Node<T> root, T data) {
       if (root == null || root.data.CompareTo(data) == 0)
           return root;

       if (data.CompareTo(root.data) < 0)
           return Search(root.LeftNode, data);

       return Search(root.RightNode, data);
   }

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2171969.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

鳕鱼检测系统源码分享

鳕鱼检测检测系统源码分享 [一条龙教学YOLOV8标注好的数据集一键训练_70全套改进创新点发刊_Web前端展示] 1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 项目来源AACV Association for the Advancement of Computer Vision …

LLM - 理解 多模态大语言模型(MLLM) 的 幻觉(Hallucination) 与相关技术 (七)

欢迎关注我的CSDN&#xff1a;https://spike.blog.csdn.net/ 本文地址&#xff1a;https://spike.blog.csdn.net/article/details/142463789 免责声明&#xff1a;本文来源于个人知识与公开资料&#xff0c;仅用于学术交流&#xff0c;欢迎讨论&#xff0c;不支持转载。 多模态…

【湖南步联科技身份证】 身份证读取与酒店收银系统源码整合———未来之窗行业应用跨平台架构

一、html5 <!DOCTYPE html> <html><head><meta http-equiv"Content-Type" content"text/html; charsetutf-8" /><script type"text/javascript" src"http://51.onelink.ynwlzc.net/o2o/tpl/Merchant/static/js…

电脑桌面美化用什么软件?精选6款桌面文件管理工具,小白秒变大师!

随着电脑在日常生活和工作中的普及&#xff0c;越来越多的用户开始重视电脑桌面美化的需求。单调的桌面背景和杂乱的文件排列已经无法满足我们对个性化与效率的追求。许多用户渴望找到合适的桌面整理工具&#xff0c;使他们的电脑桌面不仅美观&#xff0c;还能提升工作效率。为…

艺术家刘欢近况时隔5年再登《歌手》舞台,国家级嗓音引发热议

在我国&#xff0c;有这样一位艺术家&#xff0c;他自上世纪80年代至今&#xff0c;用一首首脍炙人口的歌曲和他那独特的嗓音陪伴数代人成长。凭借音乐上的造诣和天赋&#xff0c;他被众多网友誉为“音乐教父”&#xff1b;攀登至领域巅峰时&#xff0c;他不忘提携后辈&#xf…

低代码平台推荐与对比,国内外哪家更胜一筹?

低代码开发通过图形界面简化开发&#xff0c;提升速度与协作&#xff0c;降低成本。国内外平台如ZohoCreator、OutSystems等各具特色&#xff0c;支持快速开发、集成与数据安全。企业可试用后按需选择&#xff0c;降低决策成本。 一、低代码是什么&#xff1f; 低代码开发是一…

如何组织一场考试并筛选未参加答题的考生?

&#x1f64b;频繁有小伙伴咨询&#xff1a;我组织了一场答题活动&#xff0c;导出考试成绩时只有参加了答题的人&#xff0c;但我想要找到哪些人没答题 此前我们会建议小伙伴逐人排查&#xff0c;但这建议被反复吐槽&#x1f926; 确实&#xff0c;如果只有十几个人逐人排查还…

一家5口全感染?幽门螺杆菌筛查的意义!

近日&#xff0c;浙江的一家医院消化内科专家接诊了一名因感染幽门螺杆菌多年而罹患胃癌的患者。糟糕的是&#xff0c;他一家5口全感染了这种菌。2023年底&#xff0c;浙江杭州李先生&#xff08;化名&#xff09;在公司组织体检时查出幽门螺杆菌阳性。但他也不知道自己是何时、…

HTML基础用法介绍一

VS code 如何快速生成HTML骨架注释是什么&#xff1f;为什么要写注释&#xff1f;注释的标签是什么&#xff1f;标题标签段落标签换行标签与水平线标签 (都是单标签&#xff09;文本格式化标签图片标签超链接标签音频标签视频标签 &#x1f698;正片开始 VS code 如何快速生成…

相亲交友系统的社会影响:家庭结构的变化

随着互联网技术的发展&#xff0c;相亲交友系统已成为许多单身人士寻找伴侣的重要途径。这些平台不仅改变了人们的社交方式&#xff0c;还对家庭结构产生了深远的影响。本文将探讨相亲交友系统如何促使家庭结构发生变化&#xff0c;开发h17711347205并通过简单的Python代码示例…

【bug fixed】hexo d的时候Spawn failed

在执行hexo d部署的时候&#xff0c;遇到报错&#xff1a; % hexo d INFO Validating config INFO Deploying: git INFO Clearing .deploy_git folder... INFO Copying files from public folder... INFO Copying files from extend dirs... [main 8e89088] Site updated…

信息学奥赛的最佳启蒙阶段是小学还是初中?

信息学奥赛&#xff08;NOI&#xff09;近年来越来越受家长和学生的关注&#xff0c;尤其是在编程教育不断升温的背景下&#xff0c;信息学竞赛成为了许多家庭的教育选择之一。家长们往往关心的是&#xff1a;孩子应该在什么年龄段开始接触信息学竞赛&#xff0c;才能打下坚实的…

设计模式 之 —— MVC模式

目录 什么是MVC模式&#xff1f; MVC 工作流程&#xff1a; MVC模式&#xff08;java示例.部分代码&#xff09; 1、Model java 2、View HTML CSS JS 3、Controller java 运行结果&#xff1a; 适用场景&#xff1a; 什么是MVC模式&#xff1f; MVC模式提供了灵活…

基于 C# 的文本文件的编码识别

基于 C# 的文本文件的编码识别 前言一、有 BOM 文件头二、无 BOM 文件头三、简体中文汉字编码四、C# 程序对编码的识别1、文件选择按钮代码&#xff1a;2、获取文件编码&#xff0c;有 BOM 的文件识别3、获取文件编码&#xff0c;UTF8 无 BOM 文件的识别4、获取文件编码&#x…

如何有效应对商标撤三挑战?

商标撤三作为商标法中的一项重要制度&#xff0c;时刻考验着企业的商标维护与保护能力。面对这一挑战&#xff0c;企业如何构建一套有效的商标撤三管理体系&#xff0c;以确保自身品牌权益不受侵害&#xff0c;成为了一个亟待解决的问题。 理解商标撤三制度的核心要义 商标撤三…

【MyBatis 源码拆解系列】执行 Mapper 接口的方法时,MyBatis 怎么知道执行的哪个 SQL?

欢迎关注公众号 【11来了】 &#xff0c;持续 MyBatis 源码系列内容&#xff01; 在我后台回复 「资料」 可领取编程高频电子书&#xff01; 在我后台回复「面试」可领取硬核面试笔记&#xff01; 文章导读地址&#xff1a;点击查看文章导读&#xff01; 感谢你的关注&#xff…

web前端-CSS字体属性

CSS Fonts(字体)属性用于定义字体系列、大小、粗细、和文字样式(如斜体)。 一、字体 1.字体系列 CSS使用font-family属性定义文本的字体系列 例如&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8">&l…

vmware-toolbox安装,VMware虚拟机访问win10共享目录

问题&#xff1a;VMware界面无法安装vmware-toolbox&#xff0c;共享目录设置失败 解决方法&#xff1a; VMware设置 共享文件夹 ubuntu24 vm中运行vmware-toolbox-cmd -v 检查版本 vm运行sudo apt install open-vm-tools // vm可能需要重启 vm的 /mnt 目录下如果没有 hgfs…

UE5 C++: 插件编写04 | 增加和删改前缀

准备工作 UObject* Asset UObject* Asset 通常指的是一个指向UObject的指针。UObject是Unreal Engine中的基类&#xff0c;几乎所有的引擎对象都继承自UObject。这个指针可以引用任何派生自UObject的对象&#xff0c;比如蓝图、材质、贴图、音频资源等资产。 如果你看到UObj…

开箱即用的大模型应用跟踪与批量测试方案

背景介绍 最近抽空参加了一个讯飞的 RAG 比赛&#xff0c;耗时两周终于在最后一天冲上了榜首。 整体的框架是基于 RAG 能力有点弱弱的 Dify 实现。在比赛调优的过程中&#xff0c;经常需要批量提交几百个问题至 Dify 获取回答&#xff0c;并需要跟踪多轮调优的效果差异。借助…