InstructionIn this project you will be implementing a very basic search engine. The program begins by parsing a collection of text files. Then the user can give single-word queries, and the program returns the names of the files that contain the query word. In other words you need to create a dictionary ADT that maps each word to a list of files containing that word. You need to write the following implementations of theDictionary ADT: 1. an unbalanced binary search tree 2. an AVL tree 3. a splay tree Details: You will be given 4 txt files. You are supposed to read those files and create a single tree (unbalanced search tree, AVL, Splay tree). The nodes of the tree are the words from the files. Next as the user inputs a word your job is to return a list of files that contain that word. (Your program should have implementation of all three methods for all three types of trees: insert, delete, find)