The simple concept of data structures is organizing the data in memory. These organizations in memory can be linear and in a non-linear manner.
There are two different types of data structures one in primitive data type and the other in non-primitive data types.
Primitive Data Structures
Primitive data structures can hold only a single value in one specific location, unlike the non-primitive data structures which can be in a linear and non-linear order. Primitive data structures are the predefined types of data that are supported in the programming language. These are the fundamental data types of the language. For example float, integer, character, and pointer.
They are only capable of holding their types of data, unlike the non-primitive data structures.
Non-Primitive Data Structures
The non-primitive data types are the types that are defined by the user. They are further classified into linear and nonlinear data types. The linear data types are storing the data inside the memory in a sequence one after another whereas non-linear data types store them in random order. When you have to retrieve the data from the linear data structure then you have to just start from one place and you can find other data in a sequence wherein nonlinear they will have spread inside the memory in various places and can only be traced by the address. The example of a linear data structure is stacks, queues, arrays, linked lists, etc. The example of non-linear data structures is graphs and trees, etc.
Various functions can be performed on both the non-primitive and the primitive data structures they are insertion, deletion, updating, searching, and sorting of the elements in the data structure. They can be performed in both types of data structures whether it is a linked list or a tree; these operations are common to both.
The non-primitive data structures are mostly derived from the primitive data structures. For example, the stacks data structure in the non-primitive data structure can be based on either the character, integer, or float data structure which is all part of primitive data structure. Therefore the non-primitive data structures are nonetheless derived form of the primitive data structures and these all are designed by the programmers and more efficient ways of storage are provided by the non-primitive data structure.