数据结构回顾和总结(树的各种遍历方法)(1)

来源:互联网 发布:网络打字员招聘 编辑:程序博客网 时间:2024/06/06 17:00

最近在学习数据结构中树的部分,感觉有点慌。有的时候做题有点思路但是实现起来贼不简洁,甚至实现不了。而且pat这种东西对于输入输出的细节卡的又比较死。做题的时候各种麻烦不断,效率也一般。

后来想了想,感觉还是对于树的基本操作不够熟练,所以实现某些功能的时候会出现迟疑,所以就先把题停一停,搞一下基本操作。

树的基本操作我现在接触到的差不多有这些:1.二叉树的七种遍历方法(前后中序的递归和非递归方法以及层序遍历)。2. BST的增删操作。3.AVL树的LL、RR、LR、RL。

这里先开个坑,把前中后的递归遍历放上以备后用。

class Tree(object):    def __init__(self, data):        self.data = data        self.left = None        self.right = Nonenode1 = Tree(1)node2 = Tree(2)node3 = Tree(3)node4 = Tree(4)node5 = Tree(5)root = node1node1.left = node2node1.right = node3node2.left = node4node2.right = node5def pre_order(tree):    if not tree:        return     print(tree.data)    pre_order(tree.left)    pre_order(tree.right)def in_order(tree):    if not tree:        return    in_order(tree.left)    print(tree.data)    in_order(tree.right)def post_order(tree):    if not tree:        return    post_order(tree.left)    post_order(tree.right)    print(tree.data)

这里用print当前节点的数据代表已经便利过该节点。

阅读全文
0 0
原创粉丝点击