Write a program that implements the linked list Include the Node struct, the typedef NodePtr statement, and the head_insert() function Then write a main() that does these steps: creates a head for the list. add one item to the list. call head_insert() to add another 4 items to the list. Make sure each item has a different value for data. When you can do this without syntax errors, then your program might work. But it's hard to tell since you new the list items and they're not easy to see with breakpoints. So create a new function prototyped as int list_count( NodePtr ); // or int list_count( Node* ); This function takes as input the head of the linked list, and returns the number of items in the linked list. In this function, create a pointer like NodePtr current_item_in_list = NULL; Point current_item_in_list to the head of the list, and then loop it through the list until you find the NULL at the end of the list. Draw a picture of the list to keep track. Increment a counter to keep track of the items in the list. Get the function to work for a list that has 1 or more items in it. Then add code so that if there are NO items in the list (just the head pointing to NULL) that the function returns 0. Finally create a new function prototyped as void display_list( NodePtr ); This function takes as input the head of the linked list, and couts the data in each item of the list separated by a comma. So if the list contains 6 items, calling this function will result in a console display of something like The list contains 5, -1, 3, 6, 8, 7 Get this to work for lists that have one or more items in them (again, use something like current_item_in_list to loop through the list one item at a time, list_count() might also come in handy). Then add code so this function will work if all you have is a head pointing to NULL. In this special case display this: The list is empty After you get the two new functions to work correctly, modify main() to do this: create a zero-item list (just the head) call display_list() call list_count() and display result put one item in the list call display_list() call list_count() and display result put 4 or 5 more items in the list using head_insert() call display_list() call list_count() and display result The modified main(), head_insert(), display_list(), and list_count() functions are what will be in your final submission.