def intersection (a, b): ta = avl.newavl(a) result = avl.newavl() for x in b: if ta.has_key (x): result.insert (x) ta.remove (x) return result
def intersection(a, b): ta = avl.newavl(a) result = avl.newavl() for x in b: if x in ta: result.insert(x) ta.remove(x) return result
def __init__ (self, set=None): if set == None: self.items = avl.newavl() elif type(set) == type([]): self.items = avl.newavl(set[:]) elif type(set) == type(self): self.items = avl.newavl(set.items) else: self.items = avl.newavl(set)
def __init__(self, set=None): if set is None: self.items = avl.newavl() elif isinstance(set, list): self.items = avl.newavl(set[:]) elif isinstance(set, avl_set): self.items = avl.newavl(set.items) else: self.items = avl.newavl(set)
def random_indices_tree (length): t = avl.newavl() # build a 'list' of indices for num in range(length): t.insert(num) t2 = avl.newavl() for x in range(length): i = random.choice(t) t2.insert((x,i)) t.remove(i) # return the tree as a list return map (lambda x: x[1], t2)
def test(n): tree = avl.newavl() print 'generating random numbers...' t = timer(); nums = generate_test_numbers (n); t.end() fill_up(tree,nums) slice_test(tree) empty(tree)
def huffman_tree (f): t = avl.newavl (f) while len(t) > 1: w1,c1 = n1 = t[0] w2,c2 = n2 = t[1] t.remove(n1) t.remove(n2) t.insert (((w1+w2),(c1,c2))) return t[0]
def huffman_tree(f): t = avl.newavl(f) while len(t) > 1: w1, c1 = n1 = t[0] w2, c2 = n2 = t[1] t.remove(n1) t.remove(n2) t.insert(((w1 + w2), (c1, c2))) return t[0]
def mixed_tree(): def cmpfun(a, b): if isinstance(a, unicode) or isinstance(b, unicode): return cmp(str(a), str(b)) return cmp(a, b) t = avl.newavl([i for i in range(10)], cmpfun) t.insert("Hey, where will this go?") return t
def test_copy(mixed_tree): t2 = avl.newavl(mixed_tree) assert t2 is not mixed_tree assert str(mixed_tree) == ( "[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, Hey, where will this go?]" ) assert str(t2) == ( "[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, Hey, where will this go?]" ) t2 = None
def difference (a, b): result = avl.newavl(a) for key in b: if a.has_key (key): result.remove (key) return result
def union (a, b): result = avl.newavl(a) for key in b: if not a.has_key(key): result.insert(key) return result
def random_tree(): return avl.newavl( [25, 26, 28, 30, 40, 42, 48, 50, 51, 58, 62, 76, 76, 79, 81, 85, 91, 91, 91, 99])
def test_4(): t = avl.newavl() t.insert(50) t.insert(45) t.remove(50) assert str(t) == "[45]"
def test_10(random_tree): assert isinstance(random_tree[3:8], type(avl.newavl()))
#! /usr/bin/env python # -*- coding: utf-8 -*- from __future__ import (absolute_import, division, print_function, unicode_literals) # Standard libraries. import random import avl t = avl.newavl() print(t) # [] t.insert(50) print(t) # [50] t.insert(45) print(t) # [45, 50] t.remove(50) print(t) # [45] t = avl.newavl() for x in range(20): t.insert(random.randint(0, 100)) print(t) # [3, 8, 12, 15, 15, 29, 32, 42, 44, 48, 50, 53, 55, 57, 69, 74, 75, 76, 79, # 81, 88] # if you've compiled in the debugging code (-DDEBUG_AVL) # # [Note: print_internal_structure() prints directly to stdout, # so it doesn't work in pythonwin, but will work with the # console-mode python.exe]
def union(a, b): result = avl.newavl(a) for key in b: if key not in a: result.insert(key) return result
def test_2_1_3(): z = avl.newavl(None, lambda x, y: cmp(x[0], y[0])) z.insert('hello') z.span('h')
def test_7_a(): t = avl.newavl([i for i in range(30)][::2]) assert t[12] == 24
def t(): return avl.newavl([1, 2, 3, 4, 5])
def test_concatenate(): t1 = avl.newavl([i for i in range(5)]) t2 = avl.newavl([i for i in range(6, 15, 2)]) assert str(t1 + t2) == "[0, 1, 2, 3, 4, 6, 8, 10, 12, 14]"
def test_1(): t = avl.newavl() assert str(t) == "[]"
def test_7(): t = avl.newavl([i for i in range(30)]) assert t[25] == 25
def test_2(): t = avl.newavl() t.insert(50) assert str(t) == "[50]"
def test_6(): t = avl.newavl([i for i in range(30)]) assert len(t) == 30
def test_2_repr(): t = avl.newavl() t.insert(50) assert repr(t) == "tree([50], None)"
def difference(a, b): result = avl.newavl(a) for key in b: if key in a: result.remove(key) return result
def test_3(): t = avl.newavl() t.insert(50) t.insert(45) assert str(t) == "[45, 50]"
def test_1_repr(): t = avl.newavl() assert repr(t) == "tree([], None)"
def test_8(): t = avl.newavl([i for i in range(30)]) assert t[-1] == 29