二叉树的操作(前,中,后序遍历,非空结点的个数)递归实现
2019-03-31 21:52
387 查看
定义一个二叉树的结点
二叉树的前序遍历,
先访问根结点,再访问左,再访问右。
每次访问都要先看根结点是否为空,然后打印根结点,把此时根结点的左结点作为下一次递归的根结点,当把左结点遍历完后,再遍历右结点。其实很好想,每回只看一个结点,想一个结点怎么遍历,再用递归一写就行,实在不行就用笔画一画,多用脑子把程序跑几遍就好。
中序遍历,先访问左结点,再访问根结点,最后访问右结点。
后序遍历
只要根结点不为空,就把个数加一,然后把根结点的左结点作为下一次递归的根结点,然后再把此时根结点的右结点作为下一次递归打的右结点
第一次判断,如果根结点为空,返回0,如果不为空,left记录永远把当前根结点的左结点作为下一次递归的根结点,每次进到下一层,再进行一次根结点判断,如此反复,右结点也是如此。
相关文章推荐
- 数据结构-二叉树操作(创建、先序、中序、后序遍历、计算叶子节点数目、计算二叉树深度、左右子树交换、随机数列产生排序树、查找结点、删除节点、广度遍历、非递归先序遍历)C语言源码(全)
- 二叉树相关操作(前序遍历,中序遍历,后序遍历,层次序遍历等)递归和非递归实现
- 【数据结构】二叉树结点插入和前序、中序、后序遍历的递归实现
- 利用栈实现二叉树的先序,中序,后序遍历的非递归操作
- 用c语言创建一颗二叉树,用递归方法实现对其进行先序、中序和后序遍历的操作。
- 二叉树基本操作的递归实现(二叉树建立,先序,中序,后序,深度的递归遍历。广度优先,高度优先的非递归遍历)
- 二叉树的各种操作的(递归非递归)的实现,如(递归非递归)先序后序中序层次遍历 二叉树的高度 叶子节点数,所有节点数
- 二叉树的创建与先、中、后序遍历递归实现
- c++实现二叉树的先序遍历,中序遍历,后序遍历(递归方法)及运行实例结果
- 分别用递归和非递归方式实现二叉树的先序、中序和后序遍历
- 二叉树的遍历 前序 中序 后序 分别实现递归和非递归遍历方式
- 数据结构(一)——二叉树 前序、中序、后序、层次遍历及非递归实现 查找、统计个数、比较、求深度的递归实现
- 第十三题:非递归方法实现二叉树的前序,中序,后序,层序遍历(Java)
- 采用二叉链表结构实现二叉树,并以递归遍历思想实现二叉树的创建、二叉树的遍历(先序、中序、后序和层次遍历)
- Java实现二叉树的前序、中序、后序、层序遍历(递归方法)
- 二叉树先序,中序,后序遍历非递归实现
- 二叉树的建立以及前序、中序、后序遍历的递归和非递归实现
- 实现二叉树的先序、中序、后序遍历,包括递归方式和非递归方式
- c++实现二叉树的先序遍历,中序遍历,后序遍历(递归方法)及运行实例结果
- 二叉树的递归创建及遍历【前序、中序、后序】(C++实现)