learn datastructu from beginning, using c