a data structure uitl wrote in c lang