vairous data structures and  algorithms in C