Beispiel #1
0
def test5():
	test_array = [5, 41, 81, 86, 55, 10, 28, 19, 79, 12, 3, 21]
	bst = BinarySearchTree()
	for item in test_array:
		bst.add(item)
	print(bst)
	# [5, 3, 41, 10, 81, 28, 55, 86, 19, 79, 12, 21]
	print(bst.level_order_tranversal())
	print('****' * 10)
	# # 删除叶子节点
	# bst.remove(21)
	# # [5, 3, 41, 10, 81, 28, 55, 86, 19, 79, 12]
	# print(bst.level_order_tranversal())
	
	# 删除度为1的节点
	# bst.remove(10)
	# 	# # [5, 3, 41, 28, 81, 19, 55, 86, 12, 21, 79]
	# 	# print(bst.level_order_tranversal())
	
	# 删除度为2的节点
	# bst.remove(41)
	# # [5, 3, 55, 10, 81, 28, 79, 86, 19, 12, 21]
	# print(bst.level_order_tranversal())
	
	# 删除根节点
	bst.remove(5)
	# [10, 3, 41, 28, 81, 19, 55, 86, 12, 21, 79]
	print(bst.level_order_tranversal())
Beispiel #2
0
def test3():
	# 自定义比较函数
	def compare(e1, e2):
		return e2 - e1
	
	test_array = [5, 41, 81, 86, 55, 10, 28, 19, 79, 12, 3, 21]
	bst = BinarySearchTree(compare)
	# 这还可以使用lambda匿名函数
	# bst = BinarySearchTree(lambda e1, e2: e2 - e1)
	for item in test_array:
		bst.add(item)
	print(bst)
	print(bst.level_order_tranversal())
Beispiel #3
0
if __name__ == '__main__':
    # test1()
    # test2()
    # 测试自定义比较函数
    # test3()

    # 测试自定义类 使用匿名函数
    # test4()

    test_array = [5, 41, 81, 86, 55, 10, 28, 19, 79, 12, 3, 21]
    bst = BinarySearchTree()
    for item in test_array:
        bst.add(item)
    print(bst)
    # [5, 3, 41, 10, 81, 28, 55, 86, 19, 79, 12, 21]
    print(bst.level_order_tranversal())
    print('****' * 10)
    # # 删除叶子节点
    # bst.remove(21)
    # # [5, 3, 41, 10, 81, 28, 55, 86, 19, 79, 12]
    # print(bst.level_order_tranversal())

    # 删除度为1的节点
    # bst.remove(10)
    # 	# # [5, 3, 41, 28, 81, 19, 55, 86, 12, 21, 79]
    # 	# print(bst.level_order_tranversal())

    # 删除度为2的节点
    # bst.remove(41)
    # # [5, 3, 55, 10, 81, 28, 79, 86, 19, 12, 21]
    # print(bst.level_order_tranversal())