二叉树是数据结构这门课程中非常重要的知识点,也是最基本的一种树形结构。在二叉树的遍历又是这部分内容的重中之重,那么今天就这部分内容和大家做一个分享。所谓二叉树遍历,就是按照某种特定的次序,遍访整个二叉树中的每个结点,使得每个结点被访问一次,而且只访问一次。
在二叉树中我们令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<<" ";
}
}
有想学Java的朋友欢迎来尚学堂报名 。机不可失哦。更多技术交流者或想获取JAVA资料请加微信(858568103)
还没有评论,来说两句吧...