ostream & TNode<Whatever> :: Write_AllTNodes (ostream & stream, fstream * fio) const { if (left) { TNode<Whatever> readLeftNode (left, fio); readLeftNode.Write_AllTNodes (stream, fio); } stream << *this; if (right) { TNode<Whatever> readRightNode (right, fio); readRightNode.Write_AllTNodes (stream, fio); } return stream; }
ostream & Tree<Whatever> :: Write (ostream & stream) const /*************************************************************************** % Routine Name : Tree :: Write (public) % File : Tree.c % % Description : This funtion will output the contents of the Tree table % to the stream specificed by the caller. The stream could be % cerr, cout, or any other valid stream. % % Parameters descriptions : % % name description % ------------------ ------------------------------------------------------ % stream A reference to the output stream. % <return> A reference to the output stream. ***************************************************************************/ { long old_cost = cost; stream << "Tree " << tree_count << ":\n" << "occupancy is " << occupancy << " elements.\n"; fio->seekg (0, ios :: end); offset end = fio->tellg (); // check for new file if (root != end) { TNode<Whatever> readRootNode (root, fio); readRootNode.Write_AllTNodes (stream, fio); } // ignore cost when displaying nodes to users cost = old_cost; return stream; }