1. 程式人生 > >資料結構之二叉樹遍歷的遞迴演算法

資料結構之二叉樹遍歷的遞迴演算法

        二叉樹是資料結構這門課程中非常重要的知識點,也是最基本的一種樹形結構。在二叉樹的遍歷又是這部分內容的重中之重,那麼今天就這部分內容和大家做一個分享。所謂二叉樹遍歷,就是按照某種特定的次序,遍訪整個二叉樹中的每個結點,使得每個結點被訪問一次,而且只訪問一次。

在二叉樹中我們令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<<" ";
	}
}
以上就是本次分享的內容啦,希望能幫到大家