//----------------------------------------------------------------------------- #include "binarytreeclass.h" //----------------------------------------------------------------------------- template binarytree::binarytree(void) { //----Nothing to do } //----------------------------------------------------------------------------- template binarytree::~binarytree(void) { //----Nothing to do } //----------------------------------------------------------------------------- //----Preorder traversal template void binarytree::PreorderTaverse(void) { DoPreorderTaverse(Root); cout << endl; } //----------------------------------------------------------------------------- template void binarytree::DoPreorderTaverse(treenode *Node) { if (Node != NULL) { cout << Node->GetData() << " "; DoPreorderTaverse(Node->GetOffspring(0)); DoPreorderTaverse(Node->GetOffspring(1)); } } //----------------------------------------------------------------------------- //----Postorder traversal template void binarytree::PostorderTaverse(void) { DoPostorderTaverse(Root); cout << endl; } //----------------------------------------------------------------------------- template void binarytree::DoPostorderTaverse(treenode *Node) { if (Node != NULL) { DoPostorderTaverse(Node->GetOffspring(0)); DoPostorderTaverse(Node->GetOffspring(1)); cout << Node->GetData() << " "; } } //----------------------------------------------------------------------------- //----Inorder traversal template void binarytree::InorderTaverse(void) { DoInorderTaverse(Root); cout << endl; } //----------------------------------------------------------------------------- template void binarytree::DoInorderTaverse(treenode *Node) { if (Node != NULL) { DoInorderTaverse(Node->GetOffspring(0)); cout << Node->GetData() << " "; DoInorderTaverse(Node->GetOffspring(1)); } } //----------------------------------------------------------------------------- //----Public parts of binary tree iterator //----------------------------------------------------------------------------- //----Constructor template binarytreeiterator::binarytreeiterator( binarytree &TreeToIterate) : treeiterator(TreeToIterate) { } //-----------------------------------------------------------------------------