使用递归从二叉搜索树中删除节点

2024-03-09

因此,我尝试使用类中的这两个函数从树中删除节点。不幸的是,它只是没有删除任何内容,我想知道它出了什么问题!任何帮助将不胜感激。

def Find_Min(self,node):
        current=node
        while current.left is None:
             current=current.left
        return current



    def deletenode(self,node,ntbd):  ##ntbd:node to be deleted  /// node: root node
        if node is None:
            return None
        elif node.data>ntbd:
            node.left=self.deletenode(node.left,ntbd)
        elif node.data<ntbd:
            node.right=self.deletenode(node.right,ntbd)
        else:  ##Found you bastard
            if node.left==None and node.right==None:
                node=None
            elif node.left==None:
                temp=node.right
                node=None
                print("----",temp)
            elif node.right==None:
                temp=node.left
                node=None
                print("----",temp)
            else:
                smallest=self.Find_Min(node.right)
                node.data=smallest.data
                node.right=self.deletenode(node.right,smallest.data)

None

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用递归从二叉搜索树中删除节点 的相关文章

  • 生成所有可能的树

    给定以下数据类型定义 data FormTree Empty Node FormTree FormTree deriving Show 我想编写一个函数 它生成一个无限列表 其中包含按长度排序的所有可能的树 例如节点数量 下面的代码几乎满足
  • 在 Clojure 中退出 Recur 循环

    我想跳出下面的循环 并在第 10 行计算结果为 true 时返回最佳最小移动 我查看了 print 语句的输出 当第 10 行的计算结果为 true 时 它 找到了我正在查找的数据 但仍然重复出现 在 Clojure 中 有没有办法在语句计
  • 如何使用收益返回和递归获得字母的每个组合?

    我有几个像这样的字符串列表 可能有几十个列表 1 A B C 2 1 2 3 3 D E F 这三个仅作为示例 用户可以从几十个具有不同数量元素的类似列表中进行选择 再举个例子 这对于用户来说也是一个完全有效的选择 25 empty 4 1
  • 用于从深层嵌套列表/元组中提取元素的递归函数

    我想编写一个从深层嵌套元组和列表中提取元素的函数 假设我有这样的东西 l THIS THAT a b c THAT d e f 我想要一个没有 这个 和 那个 的简单列表 list a b c d e f 这是我到目前为止所拥有的 def
  • NodeJS 在目录中递归地哈希文件

    我能够实现目录中的递归文件遍历 即探索目录中的所有子目录和文件 为此我使用了answer https stackoverflow com questions 5827612 node js fs readdir recursive dire
  • TreeMap 删除所有大于某个键的键

    在项目中 我需要删除键值大于某个键的所有对象 键类型为Date 如果重要的话 据我所知TreeMapJava中实现的是红黑树 它是一种二叉搜索树 所以我应该得到O n 删除子树时 但除了制作尾部视图并一一删除之外 我找不到任何方法可以做到这
  • MySQL 最佳实践:SELECT 子递归尽可能提高性能?

    我想选择一个根项目及其子项 使其性能尽可能高 我更喜欢使用嵌套集模型 但这次表结构遵循邻接模型 有关嵌套集和邻接模型的更多信息 http mikehillyer com articles managing hierarchical data
  • std::map 和二叉搜索树

    我读过 std map 是使用二叉搜索树数据结构实现的 BST 是一种顺序数据结构 类似于数组中的元素 它将元素存储在 BST 节点中并按其顺序维护元素 例如如果元素小于节点 则将其存储在节点的左侧 如果元素大于节点 则将其存储在节点的右侧
  • Java递归方法求阶乘返回负输出[重复]

    这个问题在这里已经有答案了 我知道这是溢出 但问题是 20 是相对较小的数字 这不应该发生 对吧 有没有更好的方法来查找大数 例如 1000 的阶乘 而不会得到这种奇怪的结果 public class RecursiveFunctionsE
  • C# 中的递归自定义配置

    我正在尝试创建一个遵循以下递归结构的自定义配置部分
  • 使用fold_left/right反转OCaml中的列表

    更新 解决方案 感谢 jacobm 的帮助 我想出了一个解决方案 Folding Recursion let reverse list 3 theList List fold left fun element recursive call
  • 来自 JSON 的 Angular 8 动态表单

    我正在尝试从 JSON 模式递归生成动态表单 但我正在努力解决找不到表单控件的问题 这是代码示例 我收到这个错误 错误错误 找不到名称为 createdAt 的控件 我尝试了不同的方法 但仍然存在问题 我知道我错过了一些东西 所以请帮忙 任
  • php递归合并

    我需要以某种不同的方式合并一些数组 我使用 array merge recursive 然而 有一些事情我需要改变 但我不知道如何改变 这是来自 php net 的引用 但是 如果数组具有相同的数字键 则后面的值 不会覆盖原始值 但会追加
  • 如何使用递归查找数字中的最小元素 [C]

    好的 所以我正在准备我的 C 考试 当谈到递归时我有点卡住了我是大学一年级的学生 这对我来说似乎有点困难 练习要求在给定的数字中使用递归函数我需要找到最小的元素 例如 52873 是 2 程序需要打印 2 include
  • 函数速度测试的奇怪结果

    我编写了一个使用递归来查找最大公因数 分母 的函数 gt gcd function a b if length a length b gt 1 warning Only scalars allowed using first element
  • 如何高效生成总和在指定范围内的所有组合(在所有深度)

    假设您有一组值 1 1 1 12 12 16 如何生成总和在预定义范围内的所有可能组合 不重复 min max 例如 这里是 所有深度的 范围在13 and 17 1 12 1 1 12 1 1 1 12 16 1 16 这假设具有相同值的
  • B树索引与倒排索引?

    这是我对两者的理解 B 树索引 一般使用数据库列 它将列内容保留为 key 将 row id 保留为 value 它以排序的方式保存密钥 快速找到键和行位置 倒排索引 一般用于全文检索 这里文档中的单词也作为键 与文档位置 ID 一起以排序
  • SQL - 每个级别都有记录的递归树层次结构

    尝试使用 SAS 据我所知 不支持WITH RECURSIVE 在 SQL 中创建经典的层次结构树 这是现有表中的简化数据结构 USER ID SUPERVISOR ID 因此 要构建层次结构 您只需递归连接 x 次即可获取您要查找的数据
  • typescript 类型最大递归限制为 9

    我终于成功创建了一个通用类型 它为我提供了 json 键列表 值的所有可能组合 我什至准备了一种限制递归的方法 type EditAction
  • 多维数组中的数组排列保留键 PHP

    这两天我一直在疯狂地尝试完成这个任务 也许你可以启发我 这是针对赛马投注排列的 每次用户玩游戏时 我都会得到一个多维数组 2 个级别 第一级包含比赛 ID 第二级包含用户为该比赛选择的马匹 它看起来像这样 play array 4 gt a

随机推荐

  • 在 JSR-310 中计算修改后的儒略日

    如何从 JSR 310 类计算修改后的儒略日 例如LocalDate 在 JDK 8 中 具体来说 这是计算连续计算天数 http en wikipedia org wiki Julian day被称为 修改儒略日 而不是日期儒略历系统 h
  • 当我使用 pip 安装任何包时出现 WinError 10013

    我试图在 Windows 上的 Python 环境中安装软件包 每次这样做时 pip install pacakgename 我收到此错误 Retrying Retry total 4 connect None read None redi
  • 如何在 Visual Studio 中使用 C++ shlwapi 库?

    我的程序使用PathFileExistsW https learn microsoft com windows win32 api shlwapi nf shlwapi pathfileexistsw函数来自shlwapi h includ
  • 控制器如何接收 HttpPost 方法上的参数?

    从控制器中取出此代码片段 例如 public ActionResult Login if User Identity IsAuthenticated return RedirectToAction Index Home else retur
  • 已移至 Tensorflow 2.0,训练现在在第三步后挂起

    最近我决定从 Tensorflow GPU 变体 版本 1 14 迁移到当前版本 2 0 我当前的设置是 Tensorflow GPU 变体 2 0 库德恩7 6 4 CUDA 10 Python 3 6 集成开发环境 Visual Stu
  • AJAX GET 竞争条件?

    我试图以类似于以下的方法跟踪在我的网站上单击链接时的事件 a href example class track Example a
  • 如何在 IntelliJ IDEA 中使用键盘弹出错误窗口

    当使用 IntelliJ IDEA 并编写代码时 当您编写的代码出现错误时 我知道让 IDEA 显示错误详细信息的唯一方法是将鼠标光标悬停在问题上 但这需要我将手从键盘移到鼠标上 是否有一个热键会导致出现带有错误消息的弹出窗口 或者是否有配
  • Angular 2(Ionic 2)在显示页面时调用页面中的函数

    每当我的主页出现在angular 2 ionic 2 应用程序已加载我想要呼叫服务 功能 如何实现这一目标 第一次加载应用程序时 加载主页 我可以在constructor 但是当用户开始使用该应用程序并且push新页面进入nav contr
  • Response.write 和 ASP.NET 控件

    请看下面的代码 Protected Sub Page Load ByVal sender As Object ByVal e As EventArgs Handles Me Load Response Write table tr td s
  • Docker 服务禁用内存交换

    我可以为docker服务设置 MemorySwap 和 MemorySwappiness 吗 我想禁用 docker 容器的内存交换 由 docker 服务启动 但我不想为主机禁用它 MemorySwappiness 中的 1 值意味着什么
  • 在MFC项目中使用多个资源文件

    我在 VS2015 中使用 MFC C 11 并且有一组独立的 GUI 我想在多个项目中使用它们 我知道这可以通过创建一个 rc 文件来实现 该文件可以包含在每个项目的主 rc 文件中 使用多个资源文件 https msdn microso
  • System.DirectoryServices.DirectoryServicesCOMException:发生操作错误

    我有相同的网络应用程序在其他三台服务器上运行 有人知道为什么第四台服务器无法工作吗 查看错误和堆栈跟踪 发生操作错误 描述 执行期间发生未处理的异常 当前的网络请求 请查看堆栈跟踪以了解更多信息 有关错误及其在代码中的来源的信息 异常详细信
  • 重新定位 Jquery UI 自动完成结果框

    我正在使用 Jquery UI 自动完成插件作为直接的搜索词建议工具 它已启动并运行 没有任何问题 只是我无法移动结果框 我基本上需要将其向左移动 20 像素 向下移动 4 像素 我尝试覆盖 Jquery UI CSS 但无法重新定位该框
  • 生成包含 `partykit:mob()` 对象的并排节点模型的表

    假设我使用以下方法拟合模型partykit mob 之后 我想生成一个包含所有节点的并排表 包括使用整个样本拟合的模型 在这里我尝试使用stargazer 但其他方式也非常受欢迎 下面是一个例子并尝试获取表格 library partyki
  • Istio 从 ext-auth 中排除服务

    大家好 我已经在 minikube 上设置了 istio 并在网关上设置了 envoy ext auth 过滤器 我有两个微服务在不同的 Pod 中运行 向外界公开虚 拟服务 auther 和 appone 我设置的 ext auth 过滤
  • 将数据框中的每个列表转换为普通列

    我从网络上的多个来源生成了一个数据框 这些数据框事先经过清理 然后使用 cleans lt ls cleans lt cleans grepl Clean News cleans 我第一次尝试将它们绑定在一起的灵感来自 Stack Over
  • 嵌入 YouTube 播放列表,以便播放列表选项始终可见。

    有没有办法利用带有播放列表的 YouTube 嵌入式播放器并使播放列表始终可见 或者 有没有办法默认打开播放列表按钮 到目前为止 我的研究表明 showinfo 1 选项用于使播放列表始终可见 但这似乎不再起作用 showinfo 仅适用于
  • 按顺序插入数组

    简单来说 我正在处理的项目的一部分让我采用按顺序降序的数组并添加一个元素 以便数组保持顺序 最初我以为只要将元素添加到数组中 然后实现 Comparable 后进行排序就可以了 但后来发现任何类型的排序算法都是被禁止的 收藏亦然 有点不知道
  • DB->count() 返回与 count(DB->get()) 不同的值

    我正在尝试运行最简单的查询 DB table user visits gt groupBy user id gt count 但它返回了错误的数字 8 如果我把它改成这样 count DB table user visits gt grou
  • 使用递归从二叉搜索树中删除节点

    因此 我尝试使用类中的这两个函数从树中删除节点 不幸的是 它只是没有删除任何内容 我想知道它出了什么问题 任何帮助将不胜感激 def Find Min self node current node while current left is