This document provides C programs to implement various data structures and algorithms. It is divided into two parts. Part A includes programs to find GCD using recursion, generate Pascal's triangle using binomial coefficients, find Fibonacci numbers recursively, implement Towers of Hanoi recursively, find the largest and smallest element in an array, write even and odd numbers to separate files, store student records in a file, and sort city names alphabetically. Part B includes programs to sort arrays using insertion, quick, merge, selection and bubble sort and perform linear and binary searches recursively. It also includes programs to implement stacks, queues, linked lists and binary trees.