void BinarySearchTree<T>::Test()
{
	DataIO<T> dataIO;
	cout<<endl<<TEST_BEGIN_STRING<<endl;
	cout<<"Let's See The Test of Binary Search Tree"<<endl;
	T* pData = dataIO.GetDataFromStdIO(1);
	if(pData != NULL)
	{
		unsigned int nDataByte = dataIO.GetDataByte();					//Add data into tree
		for(unsigned int i=0;i<nDataByte;i++)
		{
			cout<<"Insert Data:"<<pData[i]<<endl;
			Insert(pData[i]);
		}
		cout<<"PreorderTraverse the Binary Search Tree"<<endl;
		PreorderTraverse();												//Traverse the node of the tree
		cout<<endl<<"InorderTraverse the Binary Search Tree"<<endl;
		InorderTraverse();
		cout<<endl<<"PostorderTraverse the Binary Search Tree"<<endl;
		PostorderTraverse();
		cout<<endl;
		for(unsigned int i=0;i<nDataByte;i++)
		{
			Delete(pData[i]);											//Delete data from the tree
			cout<<"Delete Data:"<<pData[i]<<endl;
			cout<<"PreorderTraverse the Binary Search Tree"<<endl;
			PreorderTraverse();
			cout<<endl;
		}
		cout<<TEST_END_STRING<<endl<<endl;
	}
}
Ejemplo n.º 2
0
void PreorderTraverse(BTreeNode* bt, VisitFuncPtr action) {
	if(bt != NULL) {
		action(bt->data);
		PreorderTraverse(bt->left, action);
		PreorderTraverse(bt->right, action);
	}
}
void BinarySearchTree<T>::PreorderTraverse(BSTNode<T>* pNode)
{
	if(pNode != NULL)
	{
		cout<<pNode->nData<<"  ";
		PreorderTraverse(pNode->pLeft);
		PreorderTraverse(pNode->pRight);
	}
}
Ejemplo n.º 4
0
int main()
{
	BTreeNode * bt1 = MakeBTreeNode();
	BTreeNode * bt2 = MakeBTreeNode();
	BTreeNode * bt3 = MakeBTreeNode();
	BTreeNode * bt4 = MakeBTreeNode();
	BTreeNode * bt5 = MakeBTreeNode();
	BTreeNode * bt6 = MakeBTreeNode();

	SetData(bt1, 1);
	SetData(bt2, 2);
	SetData(bt3, 3);
	SetData(bt4, 4);
	SetData(bt5, 5);
	SetData(bt6, 6);

	MakeLeftSubTree(bt1, bt2);
	MakeRightSubTree(bt1, bt3);
	MakeLeftSubTree(bt2, bt4);
	MakeRightSubTree(bt2, bt5);
	MakeRightSubTree(bt3, bt6);

	PreorderTraverse(bt1, ShowInData);
	printf("\n");
	InorderTraverse(bt1, ShowInData);
	printf("\n");
	PostorderTraverse(bt1, ShowInData);
	printf("\n");

	return 0;
}
void BinarySearchTree<T>::PreorderTraverse()
{
	PreorderTraverse(m_pRoot);
}