二叉搜索树
来源:互联网 发布:centos 6.8安装 分区 编辑:程序博客网 时间:2024/06/03 14:55
二叉搜索树的python实现
本文给出二叉搜索树的python代码实现,关于二叉搜索树的相关知识,任意找一本关于数据结构的树一定会有详细的介绍,我就不说了。下面直接给出相关的python代码实现,包括二叉搜索树的插入,删除和查找节点的完整代码。
- 代码实现
## Binary Search Tree#class Node(object): def __init__(self, data): self.data = data self.left = None self.right = Noneclass BinarySearchTree(object): def insert(self, root, node): if root is None: return node if root.data < node.data: root.right = self.insert(root.right, node) else: root.left = self.insert(root.left, node) return root def delete(self, root, data): if root is None: return root elif data < root.data: root.left = self.delete(root.left, data) elif data > root.data: root.right = self.delete(root.right, data) else: if root.left is None and root.right is None: root = None elif root.left is None: root = root.right elif root.right is None: root = root.left else: temp = root.right while temp.left is not None: temp = temp.left root.data = temp.data root.right = self.delete(root.right, temp.data) return root def findData(self, root, data): if root is None: return False elif data == root.data: return True elif data < root.data: return self.findData(root.left, data) else: return self.findData(root.right, data) def printTree(self, root): if not root: return else: self.printTree(root.left) print(root.data) self.printTree(root.right)r = Node(3)node = BinarySearchTree()nodelist = [1, 8, 5, 12, 14, 6, 15, 7, 127]for nde in nodelist: node.insert(r, Node(nde))print('---------------BinarySearchTree------------------')node.printTree(r)print('--------------------delete-----------------------')node.delete(r, 14)node.printTree(r)print('---------------------find------------------------')flag = node.findData(r, 14)if flag: print('We find the data!')else: print('Cannot find the data!')
阅读全文
0 0
- 【二叉搜索数】HDU3791二叉搜索树
- 二叉树--二叉搜索树
- 【二叉树】二叉搜索树
- 二叉树- 二叉搜索树
- 【搜索树】二叉搜索树
- 二叉搜索树BSTree
- 二叉搜索树
- 二叉搜索树
- 二叉搜索树
- 最优二叉搜索树
- 二叉搜索树
- 二叉搜索树
- HDOJ3791 二叉搜索树
- 二叉查找树搜索
- 二叉搜索树
- 二叉搜索树
- BST 二叉搜索树
- 二叉搜索树
- 机器学习实践(一)
- C
- 使用欧几里得算法求两个自然数的最大公约数
- Linux-破晓
- 用SQL语句,删除掉重复项只保留一条
- 二叉搜索树
- webView 离线缓存机制
- jQuery常用的选择器
- 9.8
- action输出from标签形成提交表单页面
- 如何构建高效测试团队,你必须知道的11招!
- jsp中的内置对象与servlet的内置对象的联系与区别
- pat 乙级 1053. 住房空置率 (20)
- $——jquery小结