Binary Search Trees ADTWrite a menu-driven program that implements a simple BST-based database. The programreads data from a text file and inserts them into a BST. Once the trees has been built, presentthe user with a menu:D – Depth-First Traversals: inorder, preorder, postorder // recursiveI – Iterative Depth-First Traversals: inorder, preorder, postorder (use a stack, Use the CIS22C stack library, no STL please)B – Tree Breadth-First Traversals: Print by level // iterative(Use the CIS22C queue library, no STL please)S – Search by the primary key (student ID – unique key) // iterativeM – Find the smallest // recursiveX – Find the largest // recursiveT – Print the BST as an indented list (show level numbers)// see below // recursiveA – This is a hidden option. When chosen, display the name of the developer.H – Help – to show the menu, andE – Exit. … (Skipped; Details contained in the Zip file attached.)1. Download the zip file attached below, and unzip it.2. Check the PDF file in the unzipped file CAREFULLY.3. Start working on the assignment based on requirements mentioned in the PDF file.4. Submit within the given time.