// BinTreeDriver.cpp // Exercise the BinTree class // tom bailey 26 mar 01 // Modified to implement a menu driven system that manipulates // binary trees. // Rebuilds the tree as a random shape of given size. // Displays the tree with connecting lines between nodes. // to be implemented: // size, leaves, leftmost, and other recursive methods // tom bailey 12 nov 01 #include #include using namespace std; #include "RanGen.h" #include "BinTree.h" void getRequest( string & request ) { cout << "Enter request: "; cin >> request; } int main() { unsigned long seed = 36558; RanGen rng( seed ); BinTree theTree; string request; getRequest( request ); while( request != "quit" ) { if( request == "build" ) { long treeSize; cin >> treeSize; theTree.build( treeSize, rng ); } else if( request == "display" ) { theTree.display( cout ); } else if( request == "size" ) { cout << "size is " << theTree.size() << endl; } else if( request == "height" ) { cout << "height is " << theTree.height() << endl; } else if( request == "leftmost" ) { cout << "leftmost is " << theTree.leftmost() << endl; } else if( request == "preorder" ) { cout << "preorder is "; theTree.preorder( cout ); cout << endl; } else if( request == "leaves" ) { cout << "leaves is " << theTree.leaves() << endl; } else { cout << "Known requests: build , display, size, " << "leftmost, preorder, leaves, quit" << endl; } getRequest( request ); } return 0; }