写出二叉树的先序遍历、中序遍历、后序遍历。

不会的别乱写了。我可不是一点都不懂的
2024-11-07 17:54:52
推荐回答(5个)
回答1:

一、先序遍历: 

1、访问根节点 

2、前序遍历左子树 

3、前序遍历右子树 

二、中序遍历: 

1、中序遍历左子树 

2、访问根节点 

3、中序遍历右子树 

三、后序遍历: 

1、后序遍历左子树 

2、后序遍历右子树 

3、访问根节点

下面介绍一下例子与方法:

1、画树求法:

第一步,根据前序遍历的特点,我们知道根结点为G

第二步,观察中序遍历ADEFGHMZ。其中root节点G左侧的ADEF必然是root的左子树,G右侧的HMZ必然是root的右子树。

第三步,观察左子树ADEF,左子树的中的根节点必然是大树的root的leftchild。在前序遍历中,大树的root的leftchild位于root之后,所以左子树的根节点为D。

第四步,同样的道理,root的右子树节点HMZ中的根节点也可以通过前序遍历求得。在前序遍历中,一定是先把root和root的所有左子树节点遍历完之后才会遍历右子树,并且遍历的左子树的第一个节点就是左子树的根节点。同理,遍历的右子树的第一个节点就是右子树的根节点。

第五步,观察发现,上面的过程是递归的。先找到当前树的根节点,然后划分为左子树,右子树,然后进入左子树重复上面的过程,然后进入右子树重复上面的过程。最后就可以还原一棵树了。该步递归的过程可以简洁表达如下:

1 确定根,确定左子树,确定右子树。

2 在左子树中递归。

3 在右子树中递归。

4 打印当前根。

那么,我们可以画出这个二叉树的形状:

那么,根据后序的遍历规则,我们可以知道,后序遍历顺序为:AEFDHZMG

二叉树的一些介绍:

在计算机科学中,二叉树是每个节点最多有两个子树的树结构。通常子树被称作“左子树”(left subtree)和“右子树”(right subtree)。二叉树常被用于实现二叉查找树和二叉堆。

二叉树的每个结点至多只有二棵子树(不存在度大于2的结点),二叉树的子树有左右之分,次序不能颠倒。二叉树的第i层至多有2^{i-1}个结点;深度为k的二叉树至多有2^k-1个结点;对任何一棵二叉树T,如果其终端结点数为n_0,度为2的结点数为n_2,则n_0=n_2+1。

一棵深度为k,且有2^k-1个节点称之为满二叉树;深度为k,有n个节点的二叉树,当且仅当其每一个节点都与深度为k的满二叉树中,序号为1至n的节点对应时,称之为完全二叉树。

回答2:

首先 观察这个二叉树
可见是这样的:1.以B为根节点的左子树 A根节点 以C为根节点的右子树
2.以D为根节点的左子树 B根节点 以E为根节点的右子树
3.以G为根节点的左子树 D根节点 以H为根节点的右子树
4.以K为根节点的左子树 C根节点 以F为根节点的右子树
5.以I为根节点的左子树 F根节点 右子树为空
6.左子树为空 I根节点 以J为根节点的右子树
接下来可以进行遍历了:
前序遍历 是 根 左子树 右子树:
即先是跟节点A 然后遍历 B子树 遍历完B子树后 再遍历C子树 即最后答案为:
ABDGHECKFIJ
中序遍历为 左子树 根 右子树
先遍历 B子树 遍历完了 再是A节点 然后是右子树 答案为:
GDHBEAKCIJF
后序遍历是 左子树 右子树 根
答案为:
GHDEBKJIFCA

回答3:

先序输出:
A B D G H E C K F I J
中序输出:
G D H B E A K C I J F
后序输出:
G H D E B K J I F C A

回答4:

前序:根、左子树、右子树 ABDGHECKFIJ

中序:左子树、根、右子树 GDHBEAKCIJF
后序:左子树、右子树、根 GHDEBKJIFCA

回答5: