您的位置:首页 > 理论基础 > 数据结构算法

Python 数据结构与算法——二叉搜索树的实现

2016-03-23 12:58 627 查看
class Tree:本身自然需要维护根节点(root),用于指向树的第一个节点

class Tree:
root = None


class Node:每一个节点都要维护左子树、右子树

class Node:
lft = None
rgt = None


一棵二叉搜索树最为重要的两个使命是:插入和搜索,插入最终返回的是当前节点。

class Node:
lft = None
rgt = None
def __init__(self, key, val):
self.key = key
self.val = val

def insert(node, key, value):
# 返回插入后的节点
if node: return new Node(key, value)
if node.key < key:
return insert(node.rgt, key, value)
return insert(node.lft, key, value)

def search(node, key):
if node is None: raise KeyError
if node.key == key:
return node.val
if node.key < key:
return search(node.rgt, key)
return search(node.lft, key)

class Tree: root = None
def __getitem__(self, key):
return search(self.root, key)
def __setitem__(self, key, value):
insert(self.root, key, value)
def __contains__(self, key):
try:
search(self.root, key)
return True
except KeyError:
return False
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: