some codes about data structure