Python中二叉树实现中的错误
我需要为Node和Binary Tree编写一个类,这两个类都可以很好地工作。我还需要为这些方法使用一个菜单,当我尝试添加某些内容时,它会添加内容,但会立即重置为“无”,并在调用add时重新开始。这是菜单实现Python中二叉树实现中的错误,python,binary-tree,binary-search-tree,binary-search,Python,Binary Tree,Binary Search Tree,Binary Search,我需要为Node和Binary Tree编写一个类,这两个类都可以很好地工作。我还需要为这些方法使用一个菜单,当我尝试添加某些内容时,它会添加内容,但会立即重置为“无”,并在调用add时重新开始。这是菜单实现 if __name__ == '__main__': print("Menu \n" "\n" "1. Add item \n" "2. Get item \n" "3. Print Binary Tree in I
if __name__ == '__main__':
print("Menu \n"
"\n"
"1. Add item \n"
"2. Get item \n"
"3. Print Binary Tree in Inorder Transversal \n"
"4. Exit \n")
user_input = input("Please select an action from the menu: ")
tree = BinaryTree()
if user_input == "1":
item = str(input("Please enter an item to add to the Binary Tree: "))
bin_str = str(input("Please enter binary string to place in the Binary Tree: "))
tree.add(item, bin_str)
tree.print_inorder()
elif user_input == "2":
get_item = input("Please enter binary string of wanted item: ")
get_bin_str = tree.get(get_item)
print(get_bin_str)
elif user_input == "3":
tree.print_inorder())
elif user_input == "4":
sys.exit(0)
else:
print("Error: please select an action from the menu")
如上所述,您需要一个while循环来允许额外的用户输入,而无需每次重置
树
变量
if __name__ == '__main__':
tree = BinaryTree()
while True:
print("Menu \n"
"\n"
"1. Add item \n"
"2. Get item \n"
"3. Print Binary Tree in Inorder Transversal \n"
"4. Exit \n")
user_input = input("Please select an action from the menu: ")
if user_input == "1":
item = str(input("Please enter an item to add to the Binary Tree: "))
bin_str = str(input("Please enter binary string to place in the Binary Tree: "))
tree.add(item, bin_str)
tree.print_inorder()
elif user_input == "2":
get_item = input("Please enter binary string of wanted item: ")
get_bin_str = tree.get(get_item)
print(get_bin_str)
elif user_input == "3":
tree.print_inorder())
elif user_input == "4":
sys.exit(0)
else:
print("Error: please select an action from the menu")
“它重置为无并重新开始”是什么意思?您显示的代码将只运行一次,而不管您提供的输入如何,因为没有循环。假设放置循环,请确保将
tree=BinaryTree()
移到菜单之外,因为您不想每次都重新初始化它。否则它将失去它的状态。