A data type refers to the type of values that variables hold and includes a set of values and operations. There are primitive/built-in data types that are predefined by languages like int and float, and abstract data types that separate the representation of values from operations. Common data types include boolean, char, float, double, int and string. A data structure organizes data to reduce complexity and increase efficiency of algorithms. Common linear data structures include arrays, linked lists, stacks and queues, while trees and graphs are examples of non-linear data structures.