数据结构之二叉树遍历的递归算法

        二叉树是数据结构这门课程中非常重要的知识点,也是最基本的一种树形结构。在二叉树的遍历又是这部分内容的重中之重,那么今天就这部分内容和大家做一个分享。所谓二叉树遍历,就是按照某种特定的次序,遍访整个二叉树中的每个结点,使得每个结点被访问一次,而且只访问一次。

在二叉树中我们令L,R,V分别表示二叉树被访问结点的左子树,右子树和该结点。遍历一般是规定从左向右,所以就有以下3种规则:VLR(前序遍历)、LVR(中序遍历)、LRV(后序遍历)。

下面给大家分享三种遍历的算法:

1、二叉树中的前序遍历算法

template<class Type>
void BinTree<Type>::PreOrder(BinTreeNode<Type> *t)const
{
	if(t != NULL)
	{
		cout<<t->data<<" ";
		PreOrder(t->leftChild);
		PreOrder(t->rightChild);
	}
}

2、二叉树中的中序遍历算法

template<class Type>
void BinTree<Type>::InOrder(BinTreeNode<Type> *t)const
{
	if(t != NULL)
	{
		InOrder(t->leftChild);
		cout<<t->data<<" ";
		InOrder(t->rightChild);
	}
}

3、二叉树中的后序遍历算法

template<class Type>
void BinTree<Type>::PostOrder(BinTreeNode<Type> *t)const
{
	if(t != NULL)
	{
		PostOrder(t->leftChild);
		PostOrder(t->rightChild);
		cout<<t->data<<" ";
	}
}

以上就是本次分享的内容啦,希望能帮到大家

    原文作者:递归算法
    原文地址: https://blog.csdn.net/At_code/article/details/55105939
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞