Please demonstrate the following in C. Please use only stdio and stdlib if possible.
Code does not need to do anything other than demonstrate the following. Please include a basic main() function as well that demonstrates the code.
1. Provide an implementation of a singly-linked list and demonstrate a merge() function that merges a linked list into another at alternating positions.
2. Provide an implementation of a doubly-linked list and demonstrate a palindrome() function that checks whether a doubly-linked list is a palindrome or not.