C语言中如何实现并理解二叉树的前序、中序、后序遍历原理?
- 内容介绍
- 文章标签
- 相关推荐
本文共计2559个文字,预计阅读时间需要11分钟。
二叉树遍历分为三种:前序、中序、后序,其中中序遍历最为重要。之所以叫这个名字,是因为它是根据根节点、左子树、右子树的顺序命名的。例如,对于一个满二叉树的节点A,其子节点分别为B和C,那么前序遍历的顺序为A、B、C。
二叉树遍历分为三种:前序、中序、后序,其中序遍历最为重要。为啥叫这个名字?是根据根节点的顺序命名的。
比如上图正常的一个满节点,A:根节点、B:左节点、C:右节点,前序顺序是ABC(根节点排最先,然后同级先左后右);中序顺序是BAC(先左后根最后右);后序顺序是BCA(先左后右最后根)。
比如上图二叉树遍历结果
前序遍历:ABCDEFGHK
中序遍历:BDCAEHGKF
后序遍历:DCBHKGFEA
分析中序遍历如下图,中序比较重要(java很多树排序是基于中序,后面讲解分析)
下面介绍一下,二叉树的三种遍历方式,其中每一种遍历方式都有三种实现方式。
节点定义:
struct TreeNode { int val; TreeNode *left,*right; TreeNode(int val){ this->val = val; this ->left = this->right = NULL; } };
先序遍历
以上面这张图为例:我们讲讲树的三种遍历方式:
先序遍历:先访问根节点,然后访问左孩子,最后访问右孩子。
所以,上面遍历的结果是:GEDACHS。
本文共计2559个文字,预计阅读时间需要11分钟。
二叉树遍历分为三种:前序、中序、后序,其中中序遍历最为重要。之所以叫这个名字,是因为它是根据根节点、左子树、右子树的顺序命名的。例如,对于一个满二叉树的节点A,其子节点分别为B和C,那么前序遍历的顺序为A、B、C。
二叉树遍历分为三种:前序、中序、后序,其中序遍历最为重要。为啥叫这个名字?是根据根节点的顺序命名的。
比如上图正常的一个满节点,A:根节点、B:左节点、C:右节点,前序顺序是ABC(根节点排最先,然后同级先左后右);中序顺序是BAC(先左后根最后右);后序顺序是BCA(先左后右最后根)。
比如上图二叉树遍历结果
前序遍历:ABCDEFGHK
中序遍历:BDCAEHGKF
后序遍历:DCBHKGFEA
分析中序遍历如下图,中序比较重要(java很多树排序是基于中序,后面讲解分析)
下面介绍一下,二叉树的三种遍历方式,其中每一种遍历方式都有三种实现方式。
节点定义:
struct TreeNode { int val; TreeNode *left,*right; TreeNode(int val){ this->val = val; this ->left = this->right = NULL; } };
先序遍历
以上面这张图为例:我们讲讲树的三种遍历方式:
先序遍历:先访问根节点,然后访问左孩子,最后访问右孩子。
所以,上面遍历的结果是:GEDACHS。

