advanced linked lists searchforstr )searches the buffer and returns tuple containing the (linecolposition of the first occurrence of the given search string none is returned if the buffer does not contain the search string searchforallstr )the same as searchfor(but returns vector of tuples indicating all occurrences of the given search string modify the editbuffer class to include the following file / operations for saving and loading the buffersavefilename )saves the text in the buffer to the text file filename loadfilename )loads the text file named filename into the buffer if the buffer is not emptythe original contents are deleted before the file is loaded the given filename must refer to an existing and valid text file create line editor application that uses the editbuffer class and allows user to edit text document in the old "line editingstyle define and implement multichain adt for storing and accessing student records as described in section implement the sparse matrix adt using the multi-linked lists as described in section consider the vector adt from programming project (aprovide new implementation that uses doubly linked list and probe reference for locating specific element (bevaluate your new implementation to determine the worst case run time of each operation (cwhat are the advantages and disadvantages of using doubly linked list to implement the vector adtcompare this implementation to that of using singly linked list consider the map adt from section (aprovide new implementation that uses sorted doubly linked list and includes probe reference for the search operations (bmodify your map class to include an iterator for use with for loop multimap adt is similar to the map adt but it uses two keys that map to single data item instead of single key as used with the map adt define and implement multimap adt