Python 实现二叉查找树及其前序、中序、后序和层序遍历
二叉查找树是一种特殊的二叉树,其中每个节点的值比其左子树中的值大,比其右子树中的值小。下面是构建一颗二叉查找树的 Python 代码:\n\npython\nclass TreeNode:\n def __init__(self, val):\n self.val = val\n self.left = None\n self.right = None\n\ndef insert(root, val):\n if root is None:\n return TreeNode(val)\n elif val < root.val:\n root.left = insert(root.left, val)\n else:\n root.right = insert(root.right, val)\n return root\n\ndef preorder(root):\n if root is None:\n return\n print(root.val, end=' ')\n preorder(root.left)\n preorder(root.right)\n\ndef inorder(root):\n if root is None:\n return\n inorder(root.left)\n print(root.val, end=' ')\n inorder(root.right)\n\ndef postorder(root):\n if root is None:\n return\n postorder(root.left)\n postorder(root.right)\n print(root.val, end=' ')\n\ndef levelorder(root):\n if root is None:\n return\n queue = [root]\n while queue:\n node = queue.pop(0)\n print(node.val, end=' ')\n if node.left:\n queue.append(node.left)\n if node.right:\n queue.append(node.right)\n\n# 构建二叉查找树\nroot = None\nvalues = [8, 3, 10, 1, 6, 14, 4, 7, 13]\nfor val in values:\n root = insert(root, val)\n\nprint("前序遍历结果:")\npreorder(root)\nprint("\n中序遍历结果:")\ninorder(root)\nprint("\n后序遍历结果:")\npostorder(root)\nprint("\n层序遍历结果:")\nlevelorder(root)\n\n\n运行结果如下:\n\n\n前序遍历结果:\n8 3 1 6 4 7 10 14 13 \n中序遍历结果:\n1 3 4 6 7 8 10 13 14 \n后序遍历结果:\n1 4 7 6 3 13 14 10 8 \n层序遍历结果:\n8 3 10 1 6 14 4 7 13 \n
原文地址: https://www.cveoy.top/t/topic/pZkZ 著作权归作者所有。请勿转载和采集!