二叉树本来就是递归定义的,如果对递归还不是特别了解,建议看一下《001.深入浅出解释[递归]》
写一个递归函数很简单,只需要记住下面2点:
1、递归中止条件:对于二叉树来说一般是node==null的时候判断到了叶子结点
2、递归函数:;描述一个中间过程,然后用代码实现,调用自身的时候传递的参数就是你想要递归的方式。
下面的代码就是一个二叉树的创建、先中后序遍历、树的深度、左右子树的互换的过程...
分类:
其他好文 时间:
2014-09-16 12:40:10
阅读次数:
222
C#完成的二叉树递归和非递归的遍历。BTreeNode是节点类,Visited是ENUM类型的表示当前节点是否被访问以及被访问的是左孩子还是右孩子(非递归后序遍历用到)
BTree是二叉树类,preVisit,InVisit,BackVisit分别是递归的前中后序遍历,preVisit1,InVisit1,BackVisit1分别是 非递归的前中后序遍历...
分类:
其他好文 时间:
2014-09-12 11:57:33
阅读次数:
190
说说:
还是简单的二叉树遍历的题目。这道题不过是将一棵树的左右子树作为杠杆。若存在左子树于相应距离的乘积和右子树相应距离的乘积不等,或者说不平衡,则输出NO。全部平衡,则整棵树平衡,输出YES。解法的话,递归判断即可。
源代码:
#include
int mobile(int*);
int main(){
int T,w;
//freopen("data","r",stdin)...
分类:
其他好文 时间:
2014-09-11 15:21:51
阅读次数:
146
二叉树的遍历:
前序遍历:根节点->左子树->右子树
中序遍历:左子树->根节点->右子树
后序遍历:左子树->右子树->根节点
求下面树的三种遍历:
前序遍历:abdefgc
中序遍历:debgfac
后序遍历:edgfbca
详细的二叉树的操作可以看一下我之前写的文章
二叉树java
已知前序、中序遍历,求后...
分类:
其他好文 时间:
2014-09-09 12:56:38
阅读次数:
489
时间限制:1 秒内存限制:32 兆特殊判题:否提交:31解决:19标签二叉树遍历题目描述二叉树的前序、中序、后序遍历的定义:前序遍历:对任一子树,先访问跟,然后遍历其左子树,最后遍历其右子树;中序遍历:对任一子树,先遍历其左子树,然后访问根,最后遍历其右子树;后序遍历:对任一子树,先遍历其左子树,然...
分类:
其他好文 时间:
2014-09-04 14:35:19
阅读次数:
237
递归好处:代码更简洁清晰,可读性更好递归可读性好这一点,对于初学者可能会反对。实际上递归的代码更清晰,但是从学习的角度要理解递归真正发生的什么,是如何调用的,调用层次和路线,调用堆栈中保存了什么,可能是不容易。但是不可否认递归的代码更简洁。一般来说,一个人可能很容易的写出前中后序的二叉树遍历的递归算...
分类:
其他好文 时间:
2014-09-01 00:17:32
阅读次数:
218
#include#include#includeusing namespace std;struct ListNode{ int data; ListNode *lchild,*rchild;};ListNode* Createbst(){ int data; scanf("...
分类:
其他好文 时间:
2014-08-30 23:01:00
阅读次数:
220
今年阿里校招首次使用线上笔试,20道单选(40mins)+3道附加题(80mins),一共2个小时。20道单选包括由于网络协议、操作系统、C++、数学逻辑题、数据结构和算法几个方面的题,其中数学和逻辑题占的比重最大,其次是C++和数据结构、算法。时间还是很紧张的。3道大题是:二叉树遍历、最长公共字串...
分类:
其他好文 时间:
2014-08-30 12:29:19
阅读次数:
170
今天学习到二叉树的时候,看到了二叉树的先序,后序,中序遍历方法。然而二叉树遍历方法递归实现十分简单,迭代版本实现起来些许复杂,就又上手试试二叉树的各种遍历方法以及实现版本,当是温习一遍之前了解到的实现方法。 三种遍历方法中递归实现难度相当,代码相当简略。 三种遍历方法中利用栈实现的迭代版本中...
分类:
其他好文 时间:
2014-08-29 23:50:08
阅读次数:
443