「栈」专题 2:二叉树的三种非递归实现


「栈」专题 2:二叉树的三种非递归实现

对于递归而言,简单来说就是自己调用自己,但是再一次调用自己,又有不一样的地方,具体表现就是参数不同。

通常我们写递归程序的时候,是不会直接使用栈的。因为操作系统在执行递归程序的时候,就帮助我们使用了栈。我们可以把操作系统为了帮助我们执行递归程序而使用的栈,称作“系统栈”。

从操作系统的角度来看,实现递归的手段,恰恰是使用了栈。对于栈的熟练掌握,可以加深我们对递归问题的理解。

之后的若干章节,我们还会多次使用递归。

递归在算法的学习中是举足轻重的。所以,我们十分有必要学习好栈这种数据结构。

对于递归的学习,我们使用”二叉树”作为入手点。以二叉树中的算法来理解递归。因为二叉树的定义就是通过递归定义的。

二叉树的遍历有三种遍历:1、前序遍历;2、中序遍历;3、后序遍历。分别就对应了 LeetCode 第 144 题、第 94 题、第 145 题。

关于二叉树的遍历分为以下四种:先序遍历、中序遍历、后序遍历、层序遍历。其中先序、中序、后序遍历又分别有递归方式和非递归方式。


文章作者: liweiwei1419
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 liweiwei1419 !
评论
 上一篇
「栈」专题 3:使用自己编写的模拟系统栈,写出非递归的程序 「栈」专题 3:使用自己编写的模拟系统栈,写出非递归的程序
「栈」专题 3:使用自己编写的模拟系统栈,写出非递归的程序二叉树的三种非递归遍历栈和递归密不可分:分别可以解决二叉树的前序遍历、中序遍历、后序遍历 LeetCode 第144 题:前序遍历LeetCode 第 94 题:中序遍历LeetCo
2017-09-03
下一篇 
「栈」专题 1:栈的使用 「栈」专题 1:栈的使用
「栈」专题 1:栈的使用这一部分,我们开始介绍「栈、队列、优先队列」。栈和队列虽然是简单的数据结构,但是使用这些简单的数据结构所解决的算法问题不一定简单。在这一章里,我们将来探索,和栈与队列相关的算法问题。 栈和队列的使用,栈和队列是两种基
2017-09-01
  目录