1.队列(queue)
队列是先进先出的,在这里利用collections模块中的deque函数,只需要使用deque的两个方法(.popleft(),.append)便可以快速的实现先进先出。
2.栈(stack)
栈是后进先出的,同样使用deque()函数,非常简单。
3.二叉树的遍历
二叉树有三个属性,根节点,左子树,右子树。只需要一个递归方法,问题便迎刃而解。
定义二叉树
先序遍历
中序遍历
对于中序遍历来书只需要把 [root.val]放在中间,后序遍历以此类推。
4.堆(heap)
最小堆问题(min_heap)
我们知道利用最小堆可以解决求一堆数里面的最大的k个数,简称topk问题。
代码实现的具体思路我将会在程序中注释出来: