Is a content type needed by a custom module? I want to write a custom module for my drupal website to get some information from users and process them. because my form fields are complex so I have decided to write my own module to generate form instead of default add content in drupal. 

Should I have create a content type for storing data or I can create my data structure for storing data ?
You can create you own data structure but I think your life will be a lot easier if you create a new content type or an entity. You can alter the form in the way you need it or get it and render it wherever you want. You also have validation and submit handlers.