Algorithm and Data Structure Templates