def test_remove(): tree = Tree() l = [38, 13, 51, 10, 25, 40, 84, 12, 37, 66, 89, 95] length = len(l) while len(l) > 0: key = l.pop(0) value = chr(key) tree.insert(key, value) tree.remove(38) assert tree.root.key == 37 assert tree.find(38) == None tree.remove(89) print(tree.in_order()) p, c = tree.find_parent_croot(95) assert p.key == 84 assert c.key == 95 tree.remove(13) print(tree.in_order()) p, c = tree.find_parent_croot(10) assert p.key == 12 assert c.key == 10 tree.remove(10) print(tree.in_order()) tree.remove(15) print(tree.in_order()) p, c = tree.find_parent_croot(25) assert p.key == 12 assert c.key == 25
def test007(self): # stress data = range(10, 100) random.shuffle(data) tree = Tree(data) self.assertEqual(len(tree), len(data)) random.shuffle(data) for d in data: tree.remove(d) self.assertEqual(len(tree), 0)
def main(): tree = Tree() #tree.query(3) Segmentation fault(core dumpted) tree.insert(1, "0010010011") tree.insert(2, "1100101110") tree.insert(3, "0001110001") tree.insert(4, "0011111100") print tree.query(0) print tree.query(5) print tree.query(4) tree2 = Tree() tree2.remove(4) print tree.query(4) print tree.query(12)
def test_remove2(): tree = Tree() l = [38, 13, 51, 10, 25, 40, 84, 12, 37, 66, 89, 95] length = len(l) while len(l) > 0: key = l.pop(0) value = chr(key) tree.insert(key, value) tree.remove(100) tree.remove(50) tree.remove(13) tree.remove(39)
class TreeTestCase(unittest.TestCase): def setUp(self): self.tree = Tree() def test001(self): # creation self.assertIsNotNone(self.tree) self.assertIsNone(self.tree.root) def test002(self): # insert self.tree.insert(42) self.assertEqual(self.tree.root.data, 42) self.tree.insert(25) self.assertEqual(self.tree.root.left.data, 25) self.tree.insert(777) self.assertEqual(self.tree.root.right.data, 777) def test003(self): # length for i in range(1, 10): self.tree.insert(i) self.assertEqual(i, len(self.tree)) def test004(self): # iterators self.tree.insert([4, 2, 1, 3, 6, 5, 8, 7, 9]) self.assertEqual([4, 2, 1, 3, 6, 5, 8, 7, 9], [n.data for n in self.tree.preorder()]) self.assertEqual([1, 3, 2, 5, 7, 9, 8, 6, 4], [n.data for n in self.tree.posorder()]) self.assertEqual([1, 2, 3, 4, 5, 6, 7, 8, 9], [n.data for n in self.tree.inorder()]) def test005(self): # simple remove self.tree.insert([42, 25, 777]) self.tree.remove(0) self.assertEqual(len(self.tree), 3) self.tree.remove(777) self.assertEqual(len(self.tree), 2) self.assertEqual([42, 25], [n.data for n in self.tree.preorder()]) self.tree.insert(12) self.assertEqual(len(self.tree), 3) self.tree.remove(25) self.assertEqual(len(self.tree), 2) self.assertEqual([42, 12], [n.data for n in self.tree.preorder()]) def test006(self): # complex remove self.tree.insert([42, 25, 777, 12, 36, 555, 999, 600]) self.tree.remove(42) self.assertEqual(self.tree.root.data, 555) self.tree.remove(555) self.assertEqual(self.tree.root.data, 600) def test007(self): # stress data = range(10, 100) random.shuffle(data) tree = Tree(data) self.assertEqual(len(tree), len(data)) random.shuffle(data) for d in data: tree.remove(d) self.assertEqual(len(tree), 0)
entries.append((x1, y2, y1)) # y2 < y1 entries.append((x2, y2, y1)) # sort them entries.sort() # tree datastucture tree = Tree() # insert first entry in order to have returned value for lower_bound first_entry = entries[0] x, y1, y2 = first_entry tree.set(y1, 0) tree.set(y2, 1) for x, y1, y2 in entries[1:]: if tree.exists(y1) and tree.exists(y2): if tree.get(y1) == 0: wifis += 1 tree.remove(y1) tree.remove(y2) else: y0 = tree.previous(y1) tree.set(y0, 1) # if tree.get(y0) == 0: # tree.set(y0, 1) tree.set(y1, 0) tree.set(y2, 1) print(wifis)
t.debug_print() print('\nLookups:') print(t.get('f').value) print(t.get('b').value) print(t.get('i').value) print('\nBFS:') print(t.walk_bfs()) print('\nDFS preorder:') print(t.walk_dfs_preorder()) print('\nDFS inorder:') print(t.walk_dfs_inorder()) print('\nDFS postorder:') print(t.walk_dfs_postorder()) print('\nRemove b:') t.remove('b') t.debug_print() print('\nRemove f:') t.remove('f') t.debug_print() print('\nRemove h:') t.remove('h') t.debug_print()
print("^^^ Teste de Inserção ^^^") t.print_tree() print("size: " + str(t.size)) print("^^^ Resultado (Inserção) ^^^") # Caso 2: Busca print("vvv Teste de Busca vvv") for idx, palavra in enumerate(lista_texto): r = t.search(palavra) print("busca por: '" + palavra + "'. Resultado: " + str(r) + " Esperado: " + str(idx)) print("^^^ Teste de Busca ^^^") # Caso 3: Remoção print("vvv Teste de Remoção - Meio vvv") print("removendo 't'") t.remove("t") print("removendo 'testa'") t.remove("testa") print("^^^ Teste de Remoção - Meio ^^^") t.print_tree() print("size: " + str(t.size)) print("^^^ Resultado (Remoção - Meio) ^^^") # Caso 4: Remoção print("vvv Teste de Remoção - Final vvv") print("removendo 'texto'") t.remove("texto") print("^^^ Teste de Remoção - Final ^^^") t.print_tree() print("size: " + str(t.size))