从有序队列构造平衡二叉树
来源:互联网 发布:淘宝付费推广 编辑:程序博客网 时间:2024/05/09 10:19
瞎写的,随便看看
# coding:utf-8'''Created on 2015年7月27日@author: "zhouyifan"'''import sysclass Tree(object): def construct_from_array(self, a, root_node): parent_index = self.get_parent_index(len(a)) root_node.value = a[parent_index] if parent_index > 0: ltree_array = a[0:parent_index] root_node.lchild = Node() self.construct_from_array(ltree_array, root_node.lchild) if parent_index < len(a) - 1: rtree_array = a[parent_index + 1 : len(a)] root_node.rchild = Node() self.construct_from_array(rtree_array, root_node.rchild) def get_parent_index(self, length): return (length - 1) / 2 def traverse(self, root): print root.value if root.lchild: self.traverse(root.lchild) if root.rchild: self.traverse(root.rchild) def search(self, value, root, l_border, r_border): if value < root.value : if root.lchild: return self.search(value, root.lchild, l_border, root.value) else: return root.value if value >= root.value : if root.rchild: return self.search(value, root.rchild, root.value, r_border) else: return r_border class Node(object): value = 0 lchild = None rchild = Noneif __name__ == "__main__": a = [100, 200, 300, 400, 500, 600, 700] root = Node() tree = Tree() tree.construct_from_array(a, root) tree.traverse(root) print tree.search(458, root, 0, sys.maxint)
0 0
- 从有序队列构造平衡二叉树
- 平衡二叉有序树
- 数据结构:根据有序链表构造平衡二叉树
- 构造平衡二叉树
- 平衡二叉树构造
- Leetcode 108 Convert Sorted Array to Binary Search Tree 有序数组构造平衡二叉查找树
- 构造平衡二叉树例子
- 平衡二叉树 构造方法
- 平衡二叉树 构造方法
- 平衡二叉树构造方法
- 平衡二叉树 构造方法
- 平衡二叉树 构造方法
- 平衡二叉树的构造
- 数据映射--平衡二叉有序树
- 有序数组转换为平衡二叉树
- 算法之 有序链表和平衡二叉树 有序数组与平衡二叉树
- 数据结构.平衡二叉树.从二叉排序树到平衡二叉树
- AVL树(平衡二叉树)的构造
- Struts2 - Interceptor中取得ActionName、Namespace、Method
- MyBatis-Spring-TransactionManager
- 51Nod专题板块
- iOS屏幕强制横屏,如右转或左转
- poj2886 Who Gets the Most Candies?(反素数 + 线段树)
- 从有序队列构造平衡二叉树
- 欢迎使用CSDN-markdown编辑器
- hdoj5303
- 组合数
- Android TextView的各种属性
- Ubuntu下mysql数据库插入中文出现乱码的解决方法
- C 的 "%s"对应以'\0'结尾的字符串
- Git命令参考手册(文本版)
- If We Were a Child Again