Homework Data Structures. Write dode for basic data structures in C. 1. Doubly linked list Since we did the singly linked list in class, this shouldn't very hard. You will need to add a method to go backwards and to start from the far end. for( end): Idone); decromentO: should work. (beware that you'll need to test if your at either end of the list in your code.) Extra Credit The implementation I wrote was anonymons. There wass one list. Write an imple" iettation that can be nanied. You'll need another typedef, and you'll need constructor like function to make it work When defining a list named 'a' it should look like: dlinked liat a; aDinitialize); a-Sadd("abc"); // etc (pointers are the easiest way to it lo make it work.) 2. Binary Tree Write support for a binary tree. Add a method "in contains( void")" that can be used to search the tree for matching item. Extra Credit Add a calllsack no that the comparison method ean be changed on the ly Homework Data Structures. Write dode for basic data structures in C. 1. Doubly linked list Since we did the singly linked list in class, this shouldn't very hard. You will need to add a method to go backwards and to start from the far end. for( end): Idone); decromentO: should work. (beware that you'll need to test if your at either end of the list in your code.) Extra Credit The implementation I wrote was anonymons. There wass one list. Write an imple" iettation that can be nanied. You'll need another typedef, and you'll need constructor like function to make it work When defining a list named 'a' it should look like: dlinked liat a; aDinitialize); a-Sadd("abc"); // etc (pointers are the easiest way to it lo make it work.) 2. Binary Tree Write support for a binary tree. Add a method "in contains( void")" that can be used to search the tree for matching item. Extra Credit Add a calllsack no that the comparison method ean be changed on the ly