Basic data structure and algorithms using C or C#