二叉树问题---二叉搜索树查找、插入与删除的代码实现
来源:互联网 发布:男生长发 知乎 编辑:程序博客网 时间:2024/06/06 02:31
class TreeNode: def __init__(self, x): self.val = x self.left = None self.right = None
查找
def Find(root, x): if not root: print("The number {} is not found".format(x)) return None if root.val == x: print("True") return root elif x < root.val: return Find(root.left, x) elif x > root.val: return Find(root.right, x)
插入
def BSTinsert(root, x): if not root: root = TreeNode(x) elif root.val > x: root.left = BSTinsert(root.left, x) elif root.val < x: root.right = BSTinsert(root.right, x) return root
删除
def Delete(root, x): if not root: raise Exception("Element not found") elif root.val > x: root.left = Delete(root.left, x) elif root.val < x: root.right = Delete(root.right, x) elif root.left and root.right: TmpCell = FindMin(root.right) root.val = TmpCell.val root.right = Delete(root.right, root.val) else: if not root.left: root = root.right else: root = root.left return rootdef FindMin(root): if not root: return None while root.left: root = root.left return root
阅读全文
2 0
- 二叉树问题---二叉搜索树查找、插入与删除的代码实现
- 实现二叉搜索树--查找、插入、删除
- 二叉搜索树的查找、插入、删除
- 二叉搜索树的插入,查找,删除
- 二叉搜索树(BST)递归与非递归的插入、删除、查找的实现
- 二叉搜索树的实现(查找,插入,删除的递归与非递归)
- 二叉查找树的搜索与插入
- 二叉查找树的插入与删除
- 二叉搜索树(二叉排序树,二叉查找树,二叉检索树)的查找,插入,删除
- 搜索二叉树之插入、删除、查找
- 二叉搜索树查找,插入,删除
- C语言实现二叉查找树(搜索树)的创建,插入,查找,删除
- 二叉搜索树的创建 && 查找 & 插入 & 删除
- 二叉搜索树的插入,删除,查找操作
- 二叉搜索树的查找、插入、删除操作
- 二叉搜索(排序)树的 查找、插入、删除
- 二叉搜索树(BST)的创建、插入、查找和删除
- 二叉搜索树的定义、查找、插入和删除
- delphi 中 image 控件加载bmp、JPG、GIF、PNG等图片的办法
- JavaScript的Arryay 类型
- 【mysql】logging模块命名冲突
- windows窗口对象(历史)
- Spring Boot全日志设置
- 二叉树问题---二叉搜索树查找、插入与删除的代码实现
- 《java基础学习之——注解 问题练习答案》
- Realm源码分析之copyToRealm与copyToRealmOrUpdate
- HDU 6043 KazaQ's Socks(周期)
- Rabbit MQ
- centos修改、保存文件的详细步骤
- 从一个死锁看mysql innodb的锁机制
- Java的21个技术点,你知道吗?
- JAVA代理模式之三动态代理CGLIB详解