二叉树前序遍历: (1)访问根结点 (2)按照前序遍历左子树 (3)按照前序遍历右子树 递归实现前序遍历的代码:二叉树中序遍历void preOrder(BiTNode *root) { if(root != NULL) { cout<<root->val<<endl; preOrder(root->lchild); preOrder(root->rchild); } }
(1)按照中序遍历左子树
(2)访问根结点
(3)按照中序遍历右子树
递归实现中序遍历的代码:二叉树后序遍历:void inOrder(BiTNode *root) { if(root != NULL) { inOrder(root->lchild); cout<<root->val<<endl; inOrder(root->rchild); } }
(1)按照后序遍历左子树
(2)按照后序遍历右子树
(3)访问根结点
递归实现后序遍历的代码:使用递归的方法很容易得到二叉树前序、中序以及后序的遍历序列,但是有时程序设计不允许用递归,这时我们就把递归方式改成非递归方式,解决这个问题的关键是设置一个栈结构。void postOrder(BiTNode *root) { if(root != NULL) { postOrder(root->lchild); postOrder(root->rchild); cout<<root->val<<endl; } }
递归与非递归遍历二叉树(前序、中序、后序)
最新推荐文章于 2020-02-14 17:09:04 发布
![](https://img-home.csdnimg.cn/images/20240711042549.png)