/* Header file for library implementing double-linked lists. * Authors: Dmitry Krivin * Oleksiy Andriychenko * Prashant Paroda * D. Hawando * * Dear Sam, * * In order to get full credit for this assignment, * we have implemented a lot of different and interesting * methods for operating the lists, including all the basic * methods (adding, deleting, displaying, length), * iterating the list, sorting, searching and appending * the lists, and even duplicating lists. In addition, our quicksort * pics random pivot and takes a function for comparison as a * parameter. Also, we have used wrapper structure to protect * users from directly messing up with implementation. * * Have fun reading this. Hope you'll enjoy our program. * * Sincerely, * * - Authors. */ typedef struct list* Listptr; Listptr createlist (); int isempty (Listptr mylist); int length (Listptr mylist); void addtofront (Listptr mylist, char *contents); void addtoend(Listptr mylist, char *contents); int deletehead (Listptr mylist); int deletetail (Listptr mylist); void resettohead(Listptr mylist); void resettotail(Listptr mylist); int placecursor (Listptr mylist,int position); int retreat(Listptr mylist); int advance(Listptr mylist); void addaftercursor(Listptr mylist, char *contents); int deletecurrent (Listptr mylist); void destroylist(Listptr mylist); Listptr duplicate(Listptr mylist); char *getcurrent(Listptr mylist); int changecurrent(Listptr mylist, char *contents); int writetofile (Listptr mylist, char *filename); void writetoscreen (Listptr mylist); Listptr readfromfile (char *filename); int find(Listptr mylist, char *elem); void append(Listptr first, Listptr second); void quicksort(Listptr mylist, int (*compar)(char *,char *));